Ошибка синтаксиса SQL с Jruby под EngineYard - PullRequest
0 голосов
/ 14 ноября 2011

Я немного повеселился с Джруби, но у меня проблемы с развертыванием моего приложения на EngineYard. При развертывании я получаю следующую ошибку:

ActiveRecord::JDBCError: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(2147483647) DEFAULT NULL' at line 1: ALTER TABLE `iterations` CHANGE `points` `points` longtext(2147483647) DEFAULT NULL

Хотя мой database.yml использует SQLITE, а не MySQL. Файл миграции указан как:

class ChangePointsToLongtext < ActiveRecord::Migration
  def up
    change_column :iterations, :points, :longtext
  end

  def down
    change_column :iterations, :points, :text
  end
end

Я почти уверен, что это change_column - я пробовал t.change и искал другие синтаксические изменения. Я думаю, что это может быть проблема с версией Jruby, работающей на EngineYard - которую я не могу обновить.

Мой GemFile выглядит так:

platforms :jruby do
 gem 'jruby-openssl'
 gem 'trinidad'
 gem 'activerecord-jdbc-adapter'
gem 'activerecord-jdbcmysql-adapter'
gem 'jdbc-mysql', :require => false
 gem 'jdbc-sqlite3', :require => false
 end

Так что я считаю, что у меня загружены все соответствующие драгоценные камни, чтобы создать базу данных под Jruby, хотя я могу быть очень неправ! Я думаю, что мне просто нужна альтернатива change_column

Кто-нибудь сталкивался с подобной проблемой? Или есть какие-либо советы по изменениям? любая помощь всегда ценится!

Спасибо С

1 Ответ

0 голосов
/ 27 ноября 2011

Во-первых, пожалуйста, используйте https://support.cloud.engineyard.com/, если вам нужна помощь с Engine Yard.

Во-вторых, EY не поддерживает SQLite.Когда ваше приложение будет развернуто в EY, EY заменит database.yml соответствующей информацией, чтобы ваше приложение могло использовать БД, указанную в конфигурации среды.При настройке среды выбор базы данных должен быть по умолчанию MySQL.

И, наконец, кажется, что что-то генерирует неправильный оператор SQL.Поскольку аналогичная миграция работает с MRI и адаптером mysql2, проблема, вероятно, связана с адаптером JDBC.Вы можете открыть вопрос по номеру https://github.com/jruby/activerecord-jdbc-adapter/issues или http://bugs.jruby.org.

Спасибо.

...