2015-09-16 18 views
10

Bu şemayı var: Ben uygulamanın başlangıç ​​birkaç satır otomatik olarak oluşturuldu and olmasını isterimPhoenix uygulaması başlatıldığında veritabanı nasıl önceden doldurulur?

schema "editables" do 
    field :title, :string 
    field :content, :binary 
    timestamps 
end 

, ben içeren :title alanıyla 6 girdileri oluşturmak istiyor ki: page1, Page2 ,. .. Yapmalı mıyım?

+0

Uygulama her başladığında bunları eklemek ister misiniz? Bu biraz kokuyor. –

+0

Evet. Uygulama başlar başlamaz. Üretimde bu bir sorun olmamalı. Amacım, kullanıcılar tarafından HTML sürümüne sahip olmak. HTML 'içeriğini düzenlenebilir olan kullanıcılar tarafından düzenlenebilir, ancak HTML olarak kodlanmış olan önceden tanımlanmış birçok alana sahip olmak güzel olurdu. Bununla garip bir şey var mı? –

+0

"Düzenlenebilir" oluşturulduğunda formda bir başlangıç ​​değeri ayarlayamıyor musunuz? –

cevap

15

Öneriniz: veritabanını dolduracak bir komut dosyası oluşturun.

gelişmede
alias MyApp.Repo 
Repo.insert! %MyApp.Data{...} 
Repo.insert! %MyApp.Data{...} 

Eğer

mix run priv/repo/seeds.exs 

olarak çalıştırabilir veya üretimde gerektiğinde: en priv/repo/seeds.exs diyelim

MIX_ENV=prod mix run priv/repo/seeds.exs 

sana verilecek bir neden göremiyorum Uygulama her başladığında bunu yapın. Geliştirme, test veya üretimde çalıştırdığınız her komutun artık veritabanında veri oluşturma cezasını ödemesi gerektiğini düşünün. Bu iyi bir fikir değil.

+0

Tamam, öneriniz, bir lib (veya başka .ex) dosyasında projeye kod koymak yerine veritabanını doldurmak istediğimde Mix'i kullanarak çalıştırabileceğim bir komut dosyası oluşturmaktır. Bunu anladım mı? –

+0

Tamam, sanırım anladım. Ben önyargılı çünkü Meteor gelen bir işlev veya bir sunucu başladığında kod çalıştıran bir işlev 'Meteor.startup' içinde yapmak için kullanılır ... Bana cevap vermek için zaman bulmak için teşekkür ederiz. –

+2

Senin için büyük bir UAU, Chris ve ekibin geri kalanı. Şaşkınım çünkü çözüm proje dosyalarında zaten yer almamıştı (daha önce hiç bakmadım ...) ve belgeler mükemmeldi, yeni gelenlerin hepsini anlamasına izin veren tanımlara bağlanıyor! Derin takdir. –

İlgili konular