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);
});
どこで間違いをしていますか?エラーが表示されます。関係「いいね」は存在しません。どんな助けでもありがたいです
Sequelizeはsync
またはマイグレーションを介してのみテーブルを作成します。モデルNews
にはsync
メソッドがあり、呼び出されるといくつかのことの1つを実行します
パラメータなしで呼び出された場合、存在しない場合はテーブルを作成します
このように呼び出された場合News.sync({ force: true })
は、現在のテーブルが存在する場合はそれをドロップし、新しいテーブルを作成します。
このように呼び出された場合News.sync({ alter: true })
は、まだモデルにない新しいフィールドを追加します(これはv4機能です)。
これらの手法は、迅速にプロトタイピングする場合に役立ちますが、最善の解決策はマイグレーションを使用することです。移行を使用すると、開発、さまざまなgitブランチ、本番環境にわたるデータベースの変更を追跡できます。それは断然最良の解決策ですが、少量の先行費用と賛同を得ています。
ハッカソンスタイルのプロジェクトに取り組んでいる場合は、{alter: true}
、ただし、しばらく作業する予定の何かを構築する場合は、必ず migrations API について理解してください。