2016-09-12 2 views
0

データベーステーブルに新しいフィールドを作成する必要があります。それから私は、次のコマンドを実行します。マイグレーションを分割して新しいコードを実行しない

sequelize migration:create 

DATETIME_unnamed-migration.js 

と呼ばれる新しいファイルが作成されます。

私は、そのファイルを開くとアップ機能でこれを書く:

queryInterface.addColumn(
    'User', 
    'postcode', 
    Sequelize.STRING 
) 

私は、テーブルのユーザーは、現在、「郵便番号」と呼ばれる新しいフィールドを持つ

sequelize db:migrate 

を実行します。

だから今?私は

というファイルを持っています
DATETIME_unnamed-migration.js 

次回は新しいフィールドを追加する必要があります。どうすればいいですか? 上記のファイルを変更してからdb:migrateを実行すると、何も起こりません。私が見コンソールで :

No migrations were executed, database schema was already up to date. 

のでsequelize-CLIは私の古い移行ファイルのいずれかが変更されたことを気にしませんか? データベーススキーマに新しいものを追加する必要があるたびに、新しいマイグレーションファイルを作成する必要がありますか? その後、しばらくすると、移行ファイルを含むディレクトリがいっぱいになります。 これは普通のアプローチですか、何かを吹き飛ばしていますか?これらの状態遷移は、新しい状態を取得するとどのように 変更を元に戻すために仕方を説明し、移行 ファイルに保存されます:あなたは別の 状態及びその逆に既存のデータベースを転送することができ移行して

答えて

2

古い状態に戻るために

私は、移行ファイルの考え方はデータベーススキーマの変更と更新を追跡することだと考えています。したがって、データベーススキーマを更新するたびに、新しいマイグレーションファイルを作成する必要があります。

関連する問題