sequrize splitt問題による理解


スプライン問題
  • 基本的に開発、テスト、生産環境でどのような環境を使用しますか?
  • デフォルトでは、開発環境が使用されています.
    models/index.jsでは対応するコードで確認できます.
    	const env = process.env.NODE_ENV || 'development';
    	const config = require(__dirname + '/../config/config.json')[env];
    環境変数が指定されていない場合、デフォルトではenv変数に開発が割り当てられます.
    env変数を使用してconfigのjosonを現在の位置から取得し、パラメータ化設定の変数値のオブジェクトを使用します.
    * __dirname은 현재 실행하는 파일의 절대경로이다.
  • はどのように他の環境に切り替えますか?
    process.env.NODE ENVは環境転換をサポートする
  • 	if (process.env.NODE_ENV === "test") {
      		env = "테스트 환경";
    	} else if (process.env.NODE_ENV === "dev") {
      		env = "개발 환경";
    	} else if (process.env.NODE_ENV === "pro") {
        	env = "배포 환경"
        }
    なぜ
  • 以上の環境が分かれているのですか?
  • 環境ごとに用途が異なるため、1つの環境では3種類(dev、test、pro)
    仕事をすれば混乱をもたらす.(可読性・保守困難)分離
    管理する.
    開発には基本スケルトンを作成する開発環境が必要です.
    テストでは、データの追加削除など複数の操作が必要です.
    導入にはユーザーデータが格納されており、勝手にテストすることはできません.
  • (オプション)設定ファイルは次のとおりです.gitignoreに登録されています.プロファイルをGitで管理するのではなく、環境変数を使用できますか?
  • かもしれません.
    環境変数を利用できます.
    でも今どうすればいいのか、
    まず構成します.jsonファイルをjsファイルに置き換えます.
    (jsonファイルはjs構文が無効な環境の「変数」なのでjsファイルに置き換える必要があります)
    node環境で環境変数にアクセスするにはdotnvモジュールが必要です
    だからjsファイルのconfigに変えますjsからdotnvモジュールを読み込む
        const dotenv = require('dotenv');
    	dotenv.config();
    その後、セキュリティ上の重要なデータが環境変数としてアクセスされます.
    const config = {
    development: {
    host: 'localhost',
    user: 'root',
    password: process.env.DATABASE_SPRINT_PASSWORD,
    database: 'cmarket'
    },
    test: {
    host: 'localhost',
    user: 'root',
    password: process.env.DATABASE_SPRINT_PASSWORD,
    database: 'cmarket_test'
    }
    };
    これをjsのオブジェクトフォーマットに変換し、プロファイルが必要な接続ファイルで次のようにします.
    適切な修正が必要

  • MySQLのvarcharまたはintタイプSequeizeで定義すべきタイプは?
    int->整数の使用
    varchar->文字列として使用
    Sequelizeのデータ型の定義方法は異なります.
    データ型は、次のようにオブジェクト内部でkey値とvalue値として定義されます.
  • url.init({
        url: DataTypes.STRING,
        title: DataTypes.STRING,
        visits: {
          type: DataTypes.INTEGER,
          defaultValue: 0
        }
      }, {
        sequelize,
        modelName: 'url',
      });

  • なぜSequelizeのタイプ定義とMySQLのタイプ定義が違うのですか?
    Sequelizeは、複数のリレーショナル・データベース・システムを互換化するために使用されます.
    共通の文法に統一されているからです.

  • 移行時に注意すべきことは何ですか?
    モデルのデフォルト値またはデータ型がよく作成されていることを確認します.
    たとえば、デフォルト値を指定できないため、コードに詳細オプションを手動で作成する必要があります.
    エラーが送信された場合は、元に戻すことで再移行する必要があります.
    移行プロセスでは、モデルファイルは自動的に適用されません.
    モデルファイルも一緒に修正します.