我的种子运行,但我看不到桌子上的数据

时间:2017-03-19 05:28:38

标签: javascript postgresql migration knex.js seeding

我对node和knex相对较新,我正在创建一个名为g42beats_dev的数据库,我在其中迁移了一个歌曲表。迁移看起来如下:



exports.up = function(knex, Promise) {
  return knex.schema.createTable('songs', (table) => {
    table.increments('id').primary();
    table.integer('user_id').references('id').inTable('users').notNullable().onDelete('cascade');
    table.string('song_name').notNullable().defaultTo('');
    table.string('artist').notNullable().defaultTo('');
    table.timestamps(true,true);
  });
};

exports.down = function(knex, Promise) {
  return knex.schema.dropTable('songs');
};




迁移很顺利。这是一张图片: enter image description here

问题在于我试图播种数据。我编写了以下代码来播种数据:



exports.seed = function(knex, Promise) {
    // Deletes ALL existing entries
    return knex('songs').del()
        .then(function() {
            // Inserts seed entries
            return knex('songs').insert([
                {
                    id: 1,
                    user_id: 1,
                    song_name: 'Ode to Viceroy',
                    artist: 'Mac DeMarco',
                    created_at: new Date(),
                    updated_at: new Date()
                },
                {
                    id: 2,
                    user_id: 1,
                    song_name: 'Apocalypse Dreams',
                    artist: 'Tame Impala',
                    created_at: new Date(),
                    updated_at: new Date()
                },
                {
                    id: 3,
                    user_id: 14,
                    song_name: 'เพื่อนรัก',
                    artist: 'Parkinson',
                    created_at: new Date(),
                    updated_at: new Date()
                }
            ])
            .then(() => {
                return knex.raw("SELECT setval('songs_id_seq', (SELECT MAX(id) FROM songs))");
            });
        });
};




创建后我运行了knex seed:run songs,但这并没有播种数据。

有人可以提供一些有关为什么会发生这种情况的见解吗?也许是一种我可以完成这些数据播种的方法。 谢谢。

0 个答案:

没有答案