像mysql,mariadb,sql server支持分区等数据库。
续集器是否支持表分区?
从文档中我找不到答案,所以答案是否定的?
有没有人手动启用它?
答案 0 :(得分:0)
这个问题已经存在了一段时间,但是我想我会发布一个答案,以防万一有人在找。目前,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");
如果您想每天间隔进行分区,则每天。
可以使用方便的migration framework便利函数与原始查询相结合来实现类似的分区。
不幸的是,由于sequelize只允许为表名指定单个字符串,因此这两个都意味着无法通过模型访问除基本表之外的任何表。在每个请求的基础上,可能会有一些直接在模型中直接更新表名的余地,例如
instance.models.my_model.tableName = my_new_tablename
但这是纯粹的猜测,没有进行任何备份的测试。