2012-07-26 14 views
14

Rayları kullanıyorum 3.2.6 ve bir veritabanı VIEW oluşturmak gerekiyor. Her zamanki gibi bir geçiş yarattım ve yürütme yöntemini kullanarak hedefe ulaşmaya çalıştım.Rails 3.2.6 ve veritabanı görünümleri geçişler yoluyla oluşturma

Maalesef bu geçiş bir tablo oluşturuyor, bir görünüm oluşturmuyor. Niye ya? peşin

Çok teşekkürler, Mauro

GÜNCELLEME:

ben şöyle bir şey var istiyorum

:

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 

Ne yazık ki bu göç bir tablo oluşturur ...

GÜNCELLEME: önceki kod çalışır! Komisyon db'yi çalıştırıyordum: rake yerine reset: dt: reset (benim hatam)

+1

Böyle bir geçişin oluşturulmasının mümkün olduğundan emin değilim. Görünüm oluşturmak için ham SQL kullanın. –

+0

Aynı şeyi yapıyorum (def ve def def, def self.up ve def self.down kullanıyorum dışında - fark var mıyım?) Ve aynı davranışı alıyorum: taşıma işlemini çalıştırın, ancak schema.rb dosyasına create_table komutu ekler. – Ladlestein

cevap

2

Kendi sorunuza cevap vermiş gibi görünüyorsunuz, ancak ilgili bir öneri yapacağım. rails_sql_views gem'u deneyin. Bu bağlantı GitHub'daki orijinal repoya gider. Yine de sürdürülmüyor gibi görünüyor. network graph'a bakmaya ve çatallardan birini denemeye değecek. Ben çatalların herhangi biri Rails 3.2.6 destekler pozitif değilim, ama onlara bakmak öneririz. Üç yıl önce Christian Eichhorn added support for the mysql2 adapter.

2

Rails 4 ile uyumlu olan ve hala korunan rails_db_views adlı bir mücevher yaptım.

Saygılarımızla,

Yacine.

+0

Merhaba Yacine, StackOverflow'a hoş geldiniz. Github üzerinde harici bir örneğe işaret etmek yerine, sorunu çözmek için ne yaptığınızı belirtebilirseniz, bir çözüm arayanlar için daha yararlı olacaktır. –

+0

Merhaba Amos! Yorumun için teşekkürler. Asıl sorun, Raylar'da yapılan gibi göç sistemi, görüşlerin ele alınması için yapılmadığı için ... "Basit" bir sistem yok ve sanırım görüntülemeyi yönetmenin yeni bir yolunu uygulaman gerekiyor. Bu yüzden bu çözümü verdim;) – Yacine

İlgili konular