Rails - Jaybird:为生成器设置seq名称

时间:2014-02-28 13:14:02

标签: ruby-on-rails jdbc migration generator firebird

如何在迁移文件中设置自定义seq名称?

我们使用带有jdbc适配器的firebird db。 在firebird中,列大小限制为32。 所以错误消息是:名称长于数据库列大小

我们遇到了与索引相同的问题,但您可以设置自定义名称:

add_index :table_name, :column, :name => "custom_name_index"

1 个答案:

答案 0 :(得分:1)

似乎是火鸟司机 https://github.com/jruby/activerecord-jdbc-adapter/blob/master/lib/arjdbc/firebird/adapter.rb

需要像oracle一样修补 https://github.com/jruby/activerecord-jdbc-adapter/blob/master/lib/arjdbc/oracle/adapter.rb

IDENTIFIER_LENGTH = 31
def default_sequence_name(table_name, column = nil)
  "#{table_name.to_s[0, IDENTIFIER_LENGTH - 4]}_seq"
end