Rails 求助贴,怎么在已完成的项目中添加表前缀或者后缀?

ROR-Eason · 2017年09月26日 · 最后由 dddd1919 回复于 2017年09月27日 · 1885 次阅读

请看到的朋友给点技术思路,目前想实现两个项目的数据表互访,但是之前的设计没有往这方面考虑,导致两个项目有很多重名的数据表。两个项目有一百多张表。。。。 ps. A 项目连接 B 项目的表,B 项目连接 A 项目的表,库的链接已经使用 yaml 创建了新的 XX_database .yml 文件在 B 项目中,但是两个两个项目有重名的数据表,也就是不能直接 B 项目中直接建 model 文件(model 名不能重复一个项目中),所以想是不是可以在原来项目上通过加表前缀或者后缀的方法来解决这个问题。

model 里面可以设置链接的数据库名和对应的表名

ice_7 回复

请问您的意思是 先把数据表名称改成带前缀或者后缀的,然后再去设置表前缀或者后缀?是这样?

ice_7 回复

在这次 rails 项目升级中主要是没理解一个问题,是不是数据表的表名改变后,model 名称一定要改变?

Config table name prefix in file config/initializers/00_database.rb

Rails.application.config.active_record.table_name_prefix = "nt_"
ROR-Eason 回复

我指的是如果你链接了一个数据库的话,A 模型连接 A 数据库的对应的表,B 模型连接 B 数据库的对应的表,不知道有没有理解错你的意思

ice_7 回复

我这边是打算 A 项目连接 B 项目的表,B 项目连接 A 项目的表,库的链接已经使用 yaml 创建了新的 XX_database .yml 文件在 B 项目中,但是两个两个项目有重名的数据表,也就是不能直接 B 项目中直接建 model 文件(model 名不能重复一个项目中),所以想是不是可以通过加表前缀或者后缀的方法来解决这个问题。

ROR-Eason 回复

可以建立俩模型么,对应不同的数据库表

ice_7 回复

继承库连接 model 就像项目中所有 model 都要继承 application model 那样

ROR-Eason 回复

model 重名是一个头疼的问题,A 项目有一个 order,B 项目也有一个 order 表,想实现 B 项目操作 A 项目的 order,最好是在 B 项目中建立一个 A_order model 文件。

qichunren 回复

谢谢提供加表前缀的方法。

postgres 不知道能不能指定 schema

简单的方法,跨项目使用 api 或 rpc 交互

ROR-Eason 关闭了讨论。 10月09日 15:06
需要 登录 后方可回复, 如果你还没有账号请 注册新账号