次の問題について助言してください。 Sequelizeを使用して既存のデータベースを操作したいと思います。使用既存のMySQLデータベースのSequelizeモデルを定義する
スタック: - 、列 'ID' と 'TEST_TABLE' 'コンテンツ'、 '状態' といくつかのデータを保持している
- Node.js v6.10.3
- MySQL 2nd Gen 5.7 running on Google Cloud
- Sequelize 4.7.5
MySQLは1台が含まれています。
私はMySQLの 'TEST_TABLE' sequelizeのための "説明" でしょうTESTTABLEモデルを定義したいので、私は実行します。
のconst接続=新しいSequelize( "DBNAME"、 "ユーザー"、 "パス"、{ ホスト:xxx.xxx.xxx.xxx、 方言:mysql }); CONST TESTTABLE = connection.define( 'TEST_TABLE'、{ ID:{タイプ:Sequelize.INTEGER、 ALLOWNULL:偽、ユニーク:真、 主キー:真、オートインクリメント: 真}、 コンテンツ:{タイプ:Sequelize .STRING}、 ステータス:{タイプ:Sequelize.STRING}、 });
この瞬間から、ノードは 'test_table'の存在を完全に無視し、その 'アナログ'(???)を作成します。
C:\Users\dmitri\Desktop\app>node query.js
Executing (default): CREATE TABLE IF NOT EXISTS `test_tables` (`id` INTEGER NOT NULL auto_increment UNIQUE , `content` VARCHAR(255), `status` INTEGER, `createdAt` DATETIME NOT NULL, `updatedAt` DAT
ETIME NOT NULL, UNIQUE `test_tables_id_unique` (`id`), PRIMARY KEY (`id`)) ENGINE=InnoDB;
Executing (default): SELECT `id`, `content`, `status`, `createdAt`, `updatedAt` FROM `test_tables` AS `test_table`;
Executing (default): SHOW INDEX FROM `test_tables`
今のMySQLは、次の2つのテーブルが含まれます
:私は、次のSequelizeコードを実行することにより、SELECT
ID ,
コンテンツFROM
test_table`にしようとしています
- 'test_table' (singular)
- 'test_tables' (plural) identical to "test_table" but empty.
を代わりに返す内容の
testTable
.findAll({attributes: ['id', 'content']})
.then(result=>{
console.log(result)
})
、ノードはそれを無視し続ける 'TEST_TABLE':
C:\ Users \ユーザードミトリ\ Desktopは、\ app>のノードが(デフォルト)を実行 query.js:test_tables
FROM id
、content
を選択するとtest_table
;
を返し、[]を返します。
「test_table」ではなく「test_tables」というクエリに自発的にジャンプする理由は何ですか?ここに何かが完全に欠けていますか?
多くの感謝!