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

ROR-Eason · September 26, 2017 · Last by dddd1919 replied at September 27, 2017 · 1886 hits

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

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

Reply to ice_7

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

Reply to ice_7

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

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

Rails.application.config.active_record.table_name_prefix = "nt_"
Reply to ROR-Eason

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

Reply to ice_7

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

Reply to ROR-Eason

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

Reply to ice_7

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

Reply to ROR-Eason

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

Reply to qichunren

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

postgres 不知道能不能指定 schema

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

ROR-Eason closed this topic. 09 Oct 15:06
You need to Sign in before reply, if you don't have an account, please Sign up first.