6

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他の人は、個別の移行から移行に切り替えるときに、モデル ファイルを単に移行にコピーしますか? モデルでのみ機能する無関係な情報の一部を切り取りますか? 移行でのみ機能しますか?
4

0 に答える 0