ホームページ >データベース >mysql チュートリアル >既存のモデルから順次移行を自動的に生成するにはどうすればよいですか?

既存のモデルから順次移行を自動的に生成するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-19 11:48:03960ブラウズ

How to Automatically Generate Sequelize Migrations from Existing Models?

既存モデルからの Sequelize 移行の自動生成

この記事では、CLI を使用した Sequelize での移行生成プロセスの自動化について詳しく説明します。 。これは、既存の Sequelize モデルを操作し、それらを最初から再作成する必要がない場合に特に便利です。

問題:

既存の Sequelize モデルのセットが与えられた場合、どうすればよいでしょうか。 Sequelize CLI を使用して、対応する移行スクリプトを自動的に生成します?

解決策:

Sequelize CLI は、既存のモデルから移行を生成するための簡単なアプローチを提供します。これを実現するには、次の手順に従います。

  1. 空の移行スケルトンを作成します。 CLI コマンドsequelize Migration:generate --name [name_of_your_migration] を実行します。これにより、空の移行ファイルが作成されます。
  2. 移行ファイルを手動で設定します: 生成された移行ファイルにはモデル構造が含まれていませんが、クリーンで便利な開始点が提供されます。既存のモデル定義に基づいて必要な詳細を入力します。

追加メモ:

CLI コマンドが移行ディレクトリを含むディレクトリから実行されていることを確認してください。不必要に新しいモデルを作成しないようにします。

例:

フィールド「id」、「name」、および「」を持つ「Employee」という名前の既存のモデルがあるとします。給料"。移行スクリプトを生成するには、次のコマンドを実行します。

sequelize migration:generate --name create_employee_table

生成された移行テンプレートは次のようになります。

'use strict';

module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.createTable('Employees', {
      id: {
        type: Sequelize.INTEGER,
        allowNull: false,
        primaryKey: true,
        autoIncrement: true,
      },
      name: {
        type: Sequelize.STRING,
        allowNull: false,
      },
      salary: {
        type: Sequelize.FLOAT,
        allowNull: true,
      },
    });
  },

  down: (queryInterface, Sequelize) => {
    return queryInterface.dropTable('Employees');
  },
};

その後、アップとdown メソッドを使用して、「Employees」テーブルの作成と削除に必要な実際のスキーマ変更を反映します。

以上が既存のモデルから順次移行を自動的に生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。