2012-07-26 8 views
14

私はrails 3.2.6を使用しており、データベースVIEWを作成する必要があります。通常どおり、私は移行を作成し、executeメソッドを使用して目標を達成しようとしました。Rails 3.2.6移行によるデータベースビューの作成

残念ながら、移行ではビューではなくテーブルが生成されます。どうして?

事前に多くのおかげで、 マウロ

UPDATE:私は次のように何かを持っていると思い

class CreateMyView < ActiveRecord::Migration 
    def self.up 
    execute <<-SQL 
     CREATE VIEW my_view AS SELECT ... 
    SQL 
    end 
    def self.down 
    execute <<-SQL 
     DROP VIEW my_view 
    SQL 
    end 
end 

残念ながら、この移行は、テーブルを作成します...

更新: 前のコードが動作します!私はrake dbを実行していました。rake dbの代わりにreset:migrate:reset(私のミス)

+1

このような移行を生成することが可能かどうかはわかりません。生のSQLを使用してビューを作成します。 –

+0

私は同じことをしています(私はdef upとdef downを使用していますが、def self.upとdef self.downでは違いがありますか?)私は同じ動作をします。移行を実行しますが、schema.rbファイルにcreate_tableコマンドを追加します。 – Ladlestein

答えて

2

あなた自身の質問に答えたようですが、私は関連する提案をします。 rails_sql_views gemをお試しください。そのリンクはGitHubの元のリポジトリに移動します。しかし、それはもはや維持されていないようです。 network graphを見て、フォークの1つを試してみる価値があります。私はが正のではありません。フォークのどれもがRails 3.2.6をサポートしているわけではありませんが、それらを見てみることをお勧めします。 Christian Eichhorn added support for the mysql2 adapter約3年前。

2

私はrails_db_viewsと呼ばれ、Rails 4と互換性があり、依然として維持されている宝石を作った。

ありがとうございます。

ヤシネ。

+0

こんにちはYacineさん、StackOverflowへようこそ。 githubの外部の例を指すのではなく、あなたがここで問題を解決するために何をしたのかを指定することができれば、解決策を探している他の人にとってはより役に立ちます。 –

+0

こんにちはAmos!ご意見ありがとうございます。実際問題は、Railsで行われたような移行システムがビューを処理するように作られていないことです。したがって、シンプルなシステムではなく、ビューを管理する新しい方法を実装する必要があると思います。だからこそ私はこの解決策を出した;) – Yacine

関連する問題