在不丢失数据的情况下更新 Knex.js table

Update Knex.js table without loosing data

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

.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')

我想做的是更改 profile_image 处的 defaultTo。我从这里 http://perkframework.com/v1/guides/database-migrations-knex.html 读到 "We never want to edit a migration file after it has been run because when we run knex migrate:latest knex will not make the change. Migrations will only run once." 所以我想知道我应该如何在不重新 运行 迁移的情况下更新它的值然后丢失我所有的当前数据。

感谢阅读!

它是生产服务器吗?

据此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()
  });
};