在不丢失数据的情况下更新 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()
});
};
我不确定如何使用 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()
});
};