mysql创建视图失败_mysql - 无法使用sequelize ORM在mysql中创建视图 - 堆栈内存溢出...

Sequelize中没有用于管理视图的内置方法,但是您可以使用简单的SQL查询创建它们,并使用常规的Sequelize模型对其进行管理。

如果您按照Sequelize文档的建议使用Umzug进行迁移,则可以使用类似于以下内容的迁移来创建视图:

const view_name = 'my_view';

const query = '';

module.exports = {

up: function (database, Sequelize) {

return database.query(`CREATE VIEW ${view_name} AS ${query}`);

},

down: function (database, Sequelize) {

return database.query(`DROP VIEW ${view_name}`);

}

}

对于视图更改或更新,应使用CREATE或REPLACE VIEW语法来确保可以回滚架构更改-避免尝试丢弃旧视图并创建新视图!

const view_name = 'my_view';

const original_query = '';

const new_query = '';

module.exports = {

up: function (database, Sequelize) {

return database.query(`CREATE OR REPLACE VIEW ${view_name} AS ${new_query}`);

},

down: function (database, Sequelize) {

return database.query(`CREATE OR REPLACE VIEW ${view_name} AS ${original_query}`);

}

}

当然,确切的代码段会根据您到目前为止设置迁移的方式而有所不同。

迁移完成后,使用视图名称作为表名称,照常创建一个表示视图架构的Sequelize模型。 所有的find系列功能都应按预期工作,而update , delete和create则应失败。

您可以参考Sequelize文档中的原始查询 ,以及此示例存储库,以将Umzug与Sequelize一起使用。 我可以找到有关Umzug本身的唯一正式文档,位于NPM页面上 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值