更新Knex.js表而​​不丢失数据

时间:2018-05-29 15:24:21

标签: database knex.js

我不确定如何使用Knex.js更改模式中的表。目前我有一个看起来像这样的表:

.createTable('users', function(table) {
  table.increments('id')
  table
    .text('username')
    .notNullable()
    .unique()
  table.text('name')
  table
    .text('email')
    .notNullable()
    .unique()
  table.string('password').notNullable()
  table
    .text('profile_image')
    .defaultTo('http://www.ecehh.org/wp-content/uploads/2018/02/avatar.jpg')

我想要做的是更改defaultTo处的profile_image。我从这里读到http://perkframework.com/v1/guides/database-migrations-knex.html “我们从不想在运行后编辑迁移文件,因为当我们运行knex migrate时:最新的knex将不会进行更改。迁移只会运行一次。”< / em>所以我想知道如何在不重新运行迁移的情况下更新它的值,然后放弃所有当前数据。

感谢阅读!

1 个答案:

答案 0 :(得分:1)

是生产服务器吗?

从这个issue我认为这可行。

exports.up = knex => {
  return knex.schema
    .alterTable('users', table => {
      table.text('profile_image').defaultTo('myurl').alter()
  });
};

exports.down = knex => {
  return knex.schema.alterTable('users', table => {
      table.text('profile_image').defaultTo('myurl').alter()
  });
};