Node.jsのORMである Sequelize はその基となったActiveRecordと同様にDBのマイグレーション機構も備わっています。 Sequelize のマイグレーション操作についてはまとまった記事が見当たらなかったので後世のために設定から基本操作までここに記しておこうと思います。 ここでは接続先のDBとしてPostgreSQLを利用していますが、MySQL、SQLiteでも同じ操作でmigrationが実行できます。 実行環境・ライブラリのバージョン情報
![Node.jsのSequelizeでDBのmigrationを実行する - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/e40191e8a37eb2a21d0208554a312d960f072957/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9Tm9kZS5qcyVFMyU4MSVBRVNlcXVlbGl6ZSVFMyU4MSVBN0RCJUUzJTgxJUFFbWlncmF0aW9uJUUzJTgyJTkyJUU1JUFFJTlGJUU4JUExJThDJUUzJTgxJTk5JUUzJTgyJThCJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1iMThmZmQwZWJiOThiZWFiZTdhNjg3YzkyOWE1MDIyMA%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBjb2JvdDAwJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1lZDU4YTYwYTNkY2Q4OGU3MmRkYTYzZDkwNTAzN2E2Yg%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D917cf855e9f053b15f8f9912f440e341)
Railsにそういうのがありますが、FuelPHPでもそういうのがある模様 Migrationを作る oil generate migration items oil generate migration sales fuel/app/migrationsにマイグレーションスクリプトが出力される fuel/app/migrations/001_items.php <?php namespace FuelMigrations; class Items { public function up() { // テーブル作成 DBUtil::create_table( 'items', // テーブル名 array( 'id' => array( 'constraint' => 11, 'type' => 'int', 'auto_increment' => true ), 'item_name'
// DBUtil の代替データベース接続を設定 DBUtil::set_connection('my_database_group'); // そのコネクションを用いて他の DBUtil を呼び出す ... // デフォルトに戻す DBUtil::set_connection(null); create_database($database, $charset = null, $if_not_exists = true, $db = null) create_database メソッドは、データベースを作成します。もし失敗した場合には、例外 Database_Exception がスローされます。 静的
php oil generate(省略形はg) migration ~でテーブルに対する操作を作成し、 php oil refine (省略形はr) migrate ~でテーブルに対する操作を実行する php oil g migration のパラメータ 作成:create_テーブル名 カラム定義 変更:rename_table_変更前テーブル名_to_変更後テーブル名 カラム追加:add_カラム名_to_テーブル名 カラム定義 カラム削除:delete_カラム名_from_テーブル名 カラム定義 カラム変更:rename_field_変更前カラム名_to_変更後カラム名_in_テーブル名 削除:drop_テーブル名 php oil r migrate のパラメータ 最新の状態まで作成:なし 特定のバージョンに戻す:--version=バージョン数 ひとつ前に戻す::down ひとつ後に更
FuelPHPでのテーブル作成などにoilコマンドをよく使いますが、 カラムの追加を行う際もoilから行うことができます。 参考URL: FuelPHP での Migration の使い方 こちらでもその方法が解説されていますが、1個のカラムしか追加していません。 しかも、 $ oil g migration add_bio_to_tests bio:text と「add_カラム名_to_テーブル名」の規則になっているので複数個追加する場合にどうしたら良いのか疑問を持ちました。 なので、複数カラム追加できるのか試してみました。 oilでの複数カラムの追加 通常のテーブル作成の時と同じように、上記の規則に従ってoilを記述した後に、複数カラムをそのまま書いてみます。 $ oil g migration add_map_to_shops map:text station:string Crea
FuelPHP での Migration の使い方 で説明されていない項目について補足します。 デフォルト値を設定する フィールドの指定に default[デフォルト値] を追加します。 $ oil g migration create_table1 title:string[50]:default[abc]生成されるファイルは以下のようになります。 <?php namespace Fuel\Migrations; class Create_table1 { public function up() { \DBUtil::create_table('table1', array( 'id' => array('constraint' => 11, 'type' => 'int', 'auto_increment' => true), 'title' => array('constraint
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く