djordje / li3_migrations
Database migrations for Lithium PHP framework
Installs: 40
Dependents: 0
Suggesters: 2
Security: 0
Stars: 2
Watchers: 2
Forks: 1
Open Issues: 1
Type:lithium-library
Requires
- php: >=5.3
- composer/installers: dev-master
- unionofrad/li3_fixtures: dev-master
This package is not auto-updated.
Last update: 2024-12-21 15:03:41 UTC
README
Dependencies
li3_fixtures - Installation instructions
lithium from master
branch (after v0.11) with integrated li3_sqltools
Usage
create migration
Create new migration file with li3 create migration
command:
li3 create migration Users
//app/resources/migration/20130506002905_Users.php
namespace app\resources\migration; class Users extends \li3_migrations\models\Migration { protected $_fields = []; protected $_records = []; protected $_meta = []; protected $_source = 'users'; public function up() {} public function down() {} }
Each field can have a type, length, if default or nullable
protected $_fields = [ 'id' => ['type' => 'id'], 'name' => ['type' => 'string', 'default' => 'foo', 'length' => 128, 'null' => false], 'bar_id' => ['type' => 'integer'] ];
Meta can be used to set constraints, table engine, charset
protected $_meta = [ 'constraints' => [ [ 'type' => 'foreign_key', 'column' => 'id', 'toColumn' => 'id', 'to' => 'other_table' ] ], 'table' => ['charset' => 'utf8', 'engine' => 'InnoDB'] ];
Examples
Create new table up and down
public function up() { return $this->create() } public function down() { return $this->drop(); }
Create new table and add records
protected $_records = array( ['name' => 'foo', 'type' => 1], ['name' => 'bar', 'type' => 1] ); public function up() { if (!$this->create()) return false; return $this->save(); } public function down() { return $this->drop(); }
You can provide arguments to command:
source
- custom table name (this is value ofsource
property):--source=site_users
library
- specify library to use:--library=li3_usermanager
migrate
Run migrations with li3 migrate
command:
Available li3 migrate
actions:
up
- accept timestamp param:li3 migrate up
orli3 migrate up 20130505
orli3 migrate up 20130505102033
down
- accept timestamp param:li3 migrate down 1
orli3 migrate down 20130505
orli3 migrate down 20130505102033
show-available
- generate table with all available migrations in current libraryshow-state
- show timestamp of latest applied migration