Slim Framework 中 Idiorm Paris 和 PHPMig 的整合


  1. 修改 composer.json 為以下內容 (版本按自己需求)
1
2
3
4
5
6
7
8
{
"require": {
"slim/slim": "2.4.3",
"j4mie/paris": "1.4.0",
"pimple/pimple": "v2.0.0",
"davedevelopment/phpmig": "dev-master"
}
}
  1. 執行更新
1
php composer.phar update
  1. 初始化 phpmig
1
./vendor/bin/phpmig init
  1. 修改 phpmig.php 的內容 (需和原來的 ORM 連接對應)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
use \Phpmig\Adapter;
use \Pimple;

$container = new Pimple();

$container['db'] = function(){
ORM::configure('sqlite:./data/default.sqlite');
Model::$auto_prefix_models = '\\Fo\\Models\\'; # 對應的前綴

return ORM::get_db();
};

$container['phpmig.adapter'] = function() use($container) {
return new Adapter\PDO\Sql($container['db'],'migrations');
};

$container['phpmig.migrations_path'] = __DIR__ . DIRECTORY_SEPARATOR . 'migrations';

return $container;
  1. 嘗試建立一個 migration
1
./vendor/bin/phpmig generate CreateUserSettings
  1. 將 migration 合併到資料庫當中
1
2
3
4
5
# 合併所有
./vendor/bin/phpmig migrate

# 指定版本
./vendor/bin/phpmig migrate -t 20140511174303
  1. 從資料庫中還原已合併的 migration
1
2
3
4
5
# 還原最後的 migration
./vendor/bin/phpmig rollback

# 還原到指定版本
./vendor/bin/phpmig rollback -t 20140428090137