SQL データベースの一部の Sequelize ユーザーはsync({ force: true })
、初期の頃によく使用し、その後移行に切り替えます。移行とモデルの構文は似ているように見えますが、あまり強調されていないように見える多くの違いもあるため、私は混乱しています。
いくつかの観察(間違っている可能性があります):
- 2 つのオプション オブジェクトは異なり
options.indexes
ます。モデルのオブジェクトは移行では機能しません (ただし、モデルでは機能します)。 - を使用したカスタム インデックス名
unique: 'somename'
は、移行フィールド属性では機能しません (ただし、モデルでは機能します)。しかし、unique: true
両方で動作します - 外部キーを明示的に作成する
references
必要があり、移行時に a を設定する必要があります (ただし、モデルでは、hasMany/belongsTo によって外部キー フィールドと外部キー参照が自動的に生成されます)。 id
、移行で手動で作成する必要がありますが、モデルでは作成しないでcreatedAt
くださいupdatedAt
最後の 2 つは、移行の責任 (db スキーマを設定する) とモデルを区別しているため、理にかなっていますが、移行がサポートするもの/機能する方法は、同様の項目では異なるようであり、sync
オプションは私の混乱を悪化させます。
いくつかの質問:
- Sequelizeの移行とモデルの間で覚えておくべき主な違いは何ですか(2 つの間の一般的な哲学ではありません)? モデルのどのオプション (オプションを使用する
sync
場合)が移行で機能しますか? sync
他の人は、個別の移行から移行に切り替えるときに、モデル ファイルを単に移行にコピーしますか? モデルでのみ機能する無関係な情報の一部を切り取りますか? 移行でのみ機能しますか?