Ruby on rails 为什么我的Rails schema.db中没有任何索引定义无法识别的索引…”;

Ruby on rails 为什么我的Rails schema.db中没有任何索引定义无法识别的索引…”;,ruby-on-rails,Ruby On Rails,Rails 2.3.5,Postgres后端,对外部Oracle数据库具有某种只读访问权限 我的schema.db文件未获取任何索引定义。相反,我在schema.db中得到的行表示: # unrecognized index "auditable_index" with type ActiveRecord::ConnectionAdapters::IndexDefinition Rails 2.3.5不完全支持Oracle开箱即用。使用sql schema格式而不是schema.rb应该可以

Rails 2.3.5,Postgres后端,对外部Oracle数据库具有某种只读访问权限

我的schema.db文件未获取任何索引定义。相反,我在schema.db中得到的行表示:

# unrecognized index "auditable_index" with type ActiveRecord::ConnectionAdapters::IndexDefinition 

Rails 2.3.5不完全支持Oracle开箱即用。使用sql schema格式而不是schema.rb应该可以解决这个问题

config.active_record.schema_format = :sql
我认为oracle增强的gem支持正确生成oracle索引,但我从未使用过它。如果您不想更改模式格式,可能值得一试


Rails 2.3.5不完全支持Oracle开箱即用。使用sql schema格式而不是schema.rb应该可以解决这个问题

config.active_record.schema_format = :sql
我认为oracle增强的gem支持正确生成oracle索引,但我从未使用过它。如果您不想更改模式格式,可能值得一试


你在postgres连接中使用了什么gem?当我使用“gem list”或“gem list--local”时,我看不到“postgres”gem。这是否意味着存在默认的gem?在my database.yml中,它使用适配器“postgresql”。您的rails应用程序是否同时连接到Postgres和Oracle?您使用什么gem连接Postgres?当我使用“gem list”或“gem list--local”时,我看不到“Postgres”gem。这是否意味着存在默认的gem?在my database.yml中,它使用适配器“postgresql”。您的rails应用程序是否同时连接到Postgres和Oracle?即使所有add_索引调用都在本地Postgres数据库的表上,这是真的吗?我猜测这可能与oracle有关,因为当我在谷歌上搜索错误消息时,我看到的很少提及的是oracle,但由于我实际上根本没有更改oracle数据库(不添加索引或数据),所以oracle限制似乎是个奇怪的问题……请记住迁移文件(将调用add_index)在生成schema.rb文件时不使用。当ActiveRecord生成schema.rb文件时(当schema_format=:ruby时),它会要求连接适配器查询数据库中的schema对象。您可以看到Postgresql的代码。我的假设是,您的Postgresql索引将正确构建,而Oracle不会,但我不确定。无论哪种方式,使用schema_format=:sql都能解决所有问题。即使所有add_索引调用都在本地postgres数据库的表上,这是真的吗?我猜测这可能与oracle有关,因为当我在谷歌上搜索错误消息时,我看到的很少提及的是oracle,但由于我实际上根本没有更改oracle数据库(不添加索引或数据),所以oracle限制似乎是个奇怪的问题……请记住迁移文件(将调用add_index)在生成schema.rb文件时不使用。当ActiveRecord生成schema.rb文件时(当schema_format=:ruby时),它会要求连接适配器查询数据库中的schema对象。您可以看到Postgresql的代码。我的假设是,您的Postgresql索引将正确构建,而Oracle不会,但我不确定。无论哪种方式,使用schema_format=:sql都可以解决所有问题。