#sqlite #jruby
#sqlite #jruby
Вопрос:
Я немного развлекаюсь с Jruby, но у меня возникают проблемы с развертыванием моего приложения на Engineeryard. При развертывании я получаю следующую ошибку:
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, запущенной на Engineeryard, которую я не могу обновить.
Мой 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
Кто-нибудь сталкивался с подобной проблемой? Или есть какие-либо рекомендации по изменениям? любая помощь всегда приветствуется!
Спасибо C
Ответ №1:
Во-первых, пожалуйста, используйте 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.
Спасибо.
Комментарии:
1. Спасибо — я пробовал engineeryard, они просто никогда не возвращались ко мне.
2. Если вы можете сообщить мне номер заявки, я рассмотрю это. Извините за ваш неудачный опыт.