2013-02-28 21 views
90

İlk Rails sitemle yeni yayına girdim, ama şimdi bir sorunum var. Projeyi IDE'de geliştirme modunda çalıştırdığımda, bir kullanıcı adını değiştirmek için konsolu aşağıdaki gibi bir şeye çalıştırabilirim:çalışan Rails konsolu üretimde

User.first.name='whatever'.

Üretim modunda canlı bir sitede aynı görevi nasıl gerçekleştirebilirim?

+1

konsolunda karıştırmasını önce db emin yedekleme yapmak çalışır "raylar c paket/exec" - ne zaman üretime – house9

+1

veya eğer belirtilen --sandbox seçeneğiyle konsolu çalıştırmak Değişikliklerinizi kaydetmek istemezsiniz –

cevap

5

Not: Bu cevap, barındırma hizmetiniz olarak Heroku kullandığınızı varsayar.

Kullandığınız barındırma hizmetine göre değişir. Heroku için, bu üretim site için raylar konsolu yükleyecektir

heroku run rails console 

da terminal ve tipi gidebilir ve bunu yayında site için kayıtları oluşturmak için izin verecektir.

Ayrıca seeding a database'a da bakabilirsiniz, ancak genellikle test amaçlıdır. RailsCasts'in konuyla ilgili bazı videoları var ama biraz modası geçmiş.

42

Oldukça kolay:

RAILS_ENV=production rails console 
+3

not 'raylar konsol üretimi' de 3.0 veya daha büyük raylar çalışır –

+13

Ayrıca bana tembel iseniz' raylar c üretimi 'yazabilirsiniz. –

159

yayınladığınız takdirde ayrıca

rails console production 

üretim elbette ile ikame edilebilir kullanabilir, 3.0 veya daha büyük raylar development veya test (değer tarafından development olduğunu varsayılan)

--sandbox seçeneğinin eklenmesi, veritabanında yaptığınız değişikliklerin c onsole sizin için çalışmıyor bu, sen googling deneyin gerçekte üretim sunucusuna raylar konsolunu çalıştırmak çalışıyorsanız

bundle exec rails console production 

denemeniz gerekebilir Eğer

çıktıktan sonra geri alınır "raylar konsolunu çalıştır [bulut barındırma sağlayıcınız]" örn. "Çalıştırmak raylar konsol Heroku" zaten sunucuya sitenizi dağıtmış varsa

+0

wow ... bir şekilde bunu hiç bilmiyordum. Her zaman çok daha karmaşık olduğunu düşünmüştüm – Tallboy

+1

Not: Raylar konsolu yerine de c raylarını taşıyabilirsiniz.(Ve '' raylar '' raylar sunucusunun yerine 's) –

+2

bir' bundle exec' – DazBaldwin

20

, ayrıca kullanabilirsiniz:

bundle exec rails console production 

... senin raylar app webroot içinde. Bu, ray paketini henüz sunucuya doğrudan yüklemediyseniz veya web uygulamanızın bağlamında konsolu çalıştırmak istiyorsanız.

+1

gerekli olabilir ... özellikle Rails 4. – IAmNaN

2

Aşağıdaki komutu deneyin.

rails c -e production 
+1

-e gerekli veya geçerli değil, diğer bkz. cevaplar aşağıda –