web-dev-qa-db-ja.com

Node JSを使用してSgreelizeにテーブルを作成してPostgresqlに格納する方法

PostgresとSequelizeの初心者ですが、DBにテーブルを作成しようとしてDBに正常に接続しました

sequelize.authenticate().then(() => {
  console.log("Success!");
  var News = sequelize.define('likes', {
    title: {
      type: Sequelize.STRING
    },
    content: {
      type: Sequelize.STRING
    }
    }, {
     freezeTableName: true
   });
   News.create({
     title: 'Getting Started with PostgreSQL and Sequelize',
     content: 'Hello there'
   });
   News.findAll({}).then((data) => {
     console.log(data);
   }).catch((err) => {
     console.log(err);
   });
}).catch((err) => {
  console.log(err);
}); 

どこで間違いをしていますか?エラーが表示されます。関係「いいね」は存在しません。どんな助けでもありがたいです

5
Kannan T

Sequelizeはsyncまたはマイグレーションを介してのみテーブルを作成します。モデルNewsにはsyncメソッドがあり、呼び出されるといくつかのことの1つを実行します

パラメータなしで呼び出された場合、存在しない場合はテーブルを作成します

このように呼び出された場合News.sync({ force: true })は、現在のテーブルが存在する場合はそれをドロップし、新しいテーブルを作成します。

このように呼び出された場合News.sync({ alter: true })は、まだモデルにない新しいフィールドを追加します(これはv4機能です)。

これらの手法は、迅速にプロトタイピングする場合に役立ちますが、最善の解決策はマイグレーションを使用することです。移行を使用すると、開発、さまざまなgitブランチ、本番環境にわたるデータベースの変更を追跡できます。それは断然最良の解決策ですが、少量の先行費用と賛同を得ています。

ハッカソンスタイルのプロジェクトに取り組んでいる場合は、{alter: true}、ただし、しばらく作業する予定の何かを構築する場合は、必ず migrations API について理解してください。