2011-11-14 12 views
0

Jrubyで楽しいことをしていますが、EngineYardにアプリケーションを配備する際に問題が発生しています。デプロイの下で私は次のエラーを取得しています:EngineYardのJrubyでSQL構文エラーが発生しました

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を使用していても。私が試してみましたt.changeや他の構文の変更のために周りを見回した - 私はそのchange_column certrainほとんどだ

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

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

:として移行ファイルがリストされています。 Engineyardで動作しているJrubyのバージョンでは問題になるかもしれないと思いますが、私は更新できません。

マイ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あなたはエンジンの庭で支援が必要な場合

答えて

0

まず、https://support.cloud.engineyard.com/を使用してください。

第2に、EYはSQLiteをサポートしていません。アプリケーションがEYにデプロイされると、EYはdatabase.ymlを適切な情報に置き換えて、アプリケーションが環境設定に示されたDBを使用できるようにします。 DBの選択は、環境を設定するときにMySQLにデフォルト設定されます。

最後に、間違ったSQL文が生成されているようです。同様の移行がMRIとmysql2アダプタで動作することを確認すると、この問題はおそらくJDBCアダプタにあります。問題はhttps://github.com/jruby/activerecord-jdbc-adapter/issuesまたはhttp://bugs.jruby.orgで開くことができます。

ありがとうございました。

+0

ありがとうございます - 私はエンジンヤードを試しましたが、彼らは私に戻ってきませんでした。 –

+0

チケット番号を教えていただけたら、私はそれを調べます。あなたの悪い経験を申し訳ありません。 – banzaiman

関連する問題