我使用 Sequelize 作为ORM的微服务很少。 为简单起见,我希望所有人共享一个数据库,即使它们没有任何共同之处。
我需要每个微服务:
exec find /projects/corpeng/members/ldagan/adm/utils/Synopsys/CCK/shared_tcl_code -name "*.tcl" | grep -v regression | xargs grep -Plc "^[ ]*namespace[ ]+eval[ ]+DlgViolationKeepProcs "
> grep: nothing to repeat
,ms1_table1
我在docs或Google中找不到任何相关内容。该问题的任何想法或包装?
答案 0 :(得分:1)
尝试将单个Db划分为多个模式(每个模式用于微服务等) - 从这种分离开始也是一个很好的做法。 然后,Sequelize有架构支持(在构造函数中你将它传递给options.schema - 默认是' public')。
尝试查看sequelize documentation以获取有关架构的更多信息。
这会解决您的问题吗?
答案 1 :(得分:0)
默认情况下,sequelize将迁移元信息存储在同一数据库内的表中。这是您的主要路障。
您可能希望为每个服务使用不同的表名
{
"development": {
"username": "root",
"password": null,
"database": "database_development",
"host": "127.0.0.1",
"dialect": "MySQL",
// Use a different table name. Default: SequelizeMeta
"migrationStorageTableName": "sequelize_meta",
// Use a different schema for the SequelizeMeta table
"migrationStorageTableSchema": "custom_schema"
}
}
这有助于使每个微服务的隔离迁移行为发生,尽管它们都在同一数据库中