gpt4 book ai didi

sequelize.js - sequelizejs : how todo database migration with partition

转载 作者:行者123 更新时间:2023-12-03 22:17:38 27 4
gpt4 key购买 nike

mysql、mariadb、sql server 等数据库都支持分区。

sequelizer 是否支持表分区?

从文档中我找不到答案,所以答案是否定的?

有人手动启用吗?

最佳答案

这个问题已经存在一段时间了,但我想我会发布一个答案,以防其他人正在寻找。目前,sequelize 不支持分区。 Table partitioning 有一个功能请求,其中包括将其添加到库中,但一年多来没有人分配给它,也没有标记里程碑。

有一个拉取请求来添加尚未合并的 PostgreSQL table partitioning。它在 MySQL、MariaDB 或 SQL Server 的特定情况下没有帮助,但可以用作开发附加组件以包含该功能的起点对于那些平台。

由于我们对这个问题的最初期望结果知之甚少,所以我所有的潜在解决方案都涉及一些猜测:

您可以使用 sequelize raw queries 通过在模型中显式定义表名来手动管理分区

sequelize.define('my_table', {
...
}, {
tableName: 'my_explicit_table_name'
});

然后执行类似的东西
sequelize.query("ALTER TABLE IF EXISTS my_explicit_table_name RENAME TO my_table_20181018");
sequelize.query("CREATE TABLE my_explicit_table_name");

如果您想按天进行分区,请每天进行一次。

使用 sequelize migration framework 便利函数与原始查询相结合,可以实现类似的功能,以实现某种版本的分区。

不幸的是,由于 sequelize 只允许为表名指定单个字符串,这两者都意味着无法通过模型访问基础以外的任何表。可能有一些余地可以根据每个请求直接在模型中更新表名,例如
instance.models.my_model.tableName = my_new_tablename

但这纯粹是猜测,没有任何测试支持。

关于sequelize.js - sequelizejs : how todo database migration with partition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44489873/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com