迁移Rails基表,表名包含*

时间:2016-06-07 09:04:18

标签: mysql ruby-on-rails migration

我在模型中有一个名为" base_transaction_log.rb"的活动记录。

它的架构信息是:

# Table name: *_bank_transaction_logs
#
#  All bank transaction tables should have the same format.
#
#  id              :integer          not null, primary key
#  credit          :decimal(8, 2)
#  created_at      :datetime         not null
#  updated_at      :datetime         not null

我希望更改其中一列,即使用小数(16,2)。

所以我创建了一个迁移文件,并在更改功能中添加了这些行。

change_column :*_bank_transaction_logs, :credit, :decimal, :precision => 16, :scale => 2

这不起作用。

语法错误(rake aborted! 语法错误:/Users/seokhoonlee/Desktop/db/migrate/20160607080159_increase_rest_decimal_precision.rb:81:语法错误,意外的tIDENTIFIER,期待keyword_end ... column:* _ bank_transaction_logs,:debit,:decimal,:precisio ...)

change_column :base_transaction_logs, :credit, :decimal, :precision => 16, :scale => 2

这也不起作用。

名称错误(Mysql2 ::错误:表' development.base_transaction_logs'不存在)

当表是基表(?,我不知道这样的术语存在)或其表名包含*?

时,如何在数据库中迁移表?

1 个答案:

答案 0 :(得分:0)

使用通配符来子类化Active Record但没有DB支持(它在数据库中不存在)。

因此,它无法在数据库中找到合适的表。

对于我的情况,我必须通过迁移任何包含bank_transaction_logs的文件(例如ABC_bank_transaction_logs)来处理* _bank_transaction_logs。