2012-03-29 21 views
7

Yığın Yığın ve Ruby on Rails yeni. Benim sorunum, komisyon db komutunu çalıştırdığımda: create veya rake db: migrate, test veritabanı etkilenir, ancak geliştirme veritabanı değildir.rake db: migrate ve rake db: geliştirme veritabanında her ikisini de oluşturma, geliştirme veritabanı değil

raylar (3.2.2)

benim database.yml: öneri için

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: &test 
    adapter: postgresql 
    encoding: unicode 
    database: ticketee_test 
    pool: 5 
    username: ticketee 
    password: my_password_here 

development: 
    adapter: postgresql 
    encoding: unicode 
    database: ticketee_development 
    pool: 5 
    username: ticketee 
    password: my_password_here 

production: 
    adapter: postgresql 
    encoding: unicode 
    database: ticketee_production 
    pool: 5 
    username: ticketee 
    password: my_password_here 

cucumber: 
    <<: *test 

Teşekkürler ama o sebep değil korkuyorum. RAILS_ENV = gelişimim. Rayları sunucusuna başladığımda, sunucu geliştirme veritabanını çalıştırır. "Rails server -e test" çalıştırırsam, sunucu test veritabanını kullanır. Geçişlerimin neden benim test veritabanımda çalıştığından emin değilim ...

UPDATE: Bir öneriye dayanarak, geliştirme dışındaki tüm veritabanı yapılandırmalarını açıkladım ve şimdi bir hata alıyorum. Postgresql çalıştırıyorum, gem 'pg' yüklü var. İlk olarak, benim yeni database.yml:

development: 
    adapter: postgresql 
    encoding: unicode 
    database: ticketee_development 
    pool: 5 
    username: ticketee 
    password: my_password_here 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
#test: &test 
# adapter: postgresql 
# encoding: unicode 
# database: ticketee_test 
# pool: 5 
# username: ticketee 
# password: my_password_here 

#production: 
# adapter: postgresql 
# encoding: unicode 
# database: ticketee_production 
# pool: 5 
# username: ticketee 
# password: my_password_here 

#cucumber: 
# <<: *test 

Hata mesajım! Yukarıdaki database.yml, tırmık db kullanarak

Someguys-MacBook-Air:ticketee someguy$ rake db:migrate 
rake aborted! 
database configuration does not specify adapter 

Tasks: TOP => db:migrate => db:load_config 
(See full trace by running task with --trace) 
Someguys-MacBook-Air:ticketee someguy$ rake db:migrate -t 
** Invoke db:migrate (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Invoke db:load_config (first_time) 
** Invoke rails_env (first_time) 
** Execute rails_env 
** Execute db:load_config 
rake aborted! 
database configuration does not specify adapter 
/Users/someguy/.rvm/gems/[email protected]/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:45:in `resolve_hash_connection' 
/Users/someguy/.rvm/gems/[email protected]/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:39:in `resolve_string_connection' 
/Users/someguy/.rvm/gems/[email protected]/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:23:in `spec' 
/Users/someguy/.rvm/gems/[email protected]/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:127:in `establish_connection' 
/Users/someguy/.rvm/gems/[email protected]/gems/activerecord-3.2.2/lib/active_record/railtie.rb:76:in `block (2 levels) in <class:Railtie>' 
/Users/someguy/.rvm/gems/[email protected]/gems/activesupport-3.2.2/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval' 
/Users/someguy/.rvm/gems/[email protected]/gems/activesupport-3.2.2/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook' 
/Users/someguy/.rvm/gems/[email protected]/gems/activesupport-3.2.2/lib/active_support/lazy_load_hooks.rb:43:in `block in run_load_hooks' 
/Users/someguy/.rvm/gems/[email protected]/gems/activesupport-3.2.2/lib/active_support/lazy_load_hooks.rb:42:in `each' 
/Users/someguy/.rvm/gems/[email protected]/gems/activesupport-3.2.2/lib/active_support/lazy_load_hooks.rb:42:in `run_load_hooks' 
/Users/someguy/.rvm/gems/[email protected]/gems/activerecord-3.2.2/lib/active_record/base.rb:718:in `<top (required)>' 
/Users/someguy/.rvm/gems/[email protected]/gems/activerecord-3.2.2/lib/active_record/railties/databases.rake:6:in `block (2 levels) in <top (required)>' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `block in execute' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain' 
/Users/someguy/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/task.rb:176:in `block in invoke_prerequisites' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/task.rb:174:in `each' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/task.rb:174:in `invoke_prerequisites' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/task.rb:157:in `block in invoke_with_call_chain' 
/Users/someguy/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block (2 levels) in top_level' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block in top_level' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `block in run' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run' 
/Users/someguy/.rvm/gems/[email protected]/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>' 
/Users/someguy/.rvm/gems/[email protected]/bin/rake:19:in `load' 
/Users/someguy/.rvm/gems/[email protected]/bin/rake:19:in `<main>' 

: DOĞRU bütün RAN ve benim tablo oluşturuldu: oluşturun. Ancak, taşıma işlemim, yukarıdakiyle aynı yığın izinde hala başarısız oluyor.

Bu benim database.yml değişti: gelişimi: adaptör: Sqlite3 veritabanı: db/development.sqlite3 havuzu: 5 zaman aşımı: 5000

test: 
    adapter: sqlite3 
    database: db/test.sqlite3 
    pool: 5 
    timeout: 5000 

production: 
    adapter: sqlite3 
    database: db/production.sqlite3 
    pool: 5 
    timeout: 5000 

GÜNCELLEME: Ben tamamen değişti benim veritabanı buna .yml: damla: tüm tırmık db ardından:

development: 
    adapter: sqlite3 
    database: db/development.sqlite3 
    pool: 5 
    timeout: 5000 

test: &test 
    adapter: sqlite3 
    database: db/test.sqlite3 
    pool: 5 
    timeout: 5000 

production: 
    adapter: sqlite3 
    database: db/production.sqlite3 
    pool: 5 
    timeout: 5000 

cucumber: 
    <<: *test 

İşte ben tırmık db çalıştırmak böyle olur göç ederler. Tır db: migrate komutu bir geçişi çalıştırır, bir db/test.sqlite3 oluşturur ve buna bir tablo ekler. Bu nedenle, taşıma işlemim hala devam ediyor. Komisyon ortamını çalıştırdığımda RAILS_ENV = geliştirme db: migrate, aynı şey olur ve ben bir test.sqlite3 dosyası alırsınız ...

+0

göç env'de RAILS_ENV = testini ayarladınız mı? –

+0

İyi öneri, korkarım ki öyle değil. –

+0

Geliştirme dışında her şeyi yorumlamayı denediniz mi ve ne olduğunu görüyor musunuz? Çalışmayabilir ancak size çözüme yol açabilecek bir hata verebilir. – huntsfromshadow

cevap

2

. Bunun neye sebep olabileceği hakkında bir fikriniz yok, ama sonunda işe yarayan bir çözüm buldu. config/ortamlarda/develop.rb içinde yapılandırmak bloğunun içinde, ben ekledi:

Rails.env = 'development' 

Ben de

+1

config/environment/name.rb, database.yml dosyasındaki adla eşleşmelidir. Raylar, konfigürasyondan ziyade konvansiyoneldir. – Sairam

0

Yml dosyanızda host: localhost eksik.

bu şekilde yapılandırmayı değiştirme

: Dün gece başlayan aynı sorun vardı

development: 
    adapter: postgresql 
    encoding: unicode 
    host: localhost 
    database: ticketee_development 
    pool: 5 
    username: ticketee 
    password: my_password_here 
+0

Ana bilgisayarı belirledim, aynı sorun. Unutmayın, yukarıdaki test veritabanına geçişler yazabilirim, ancak hiçbir koşulda geliştirmeye yazamıyorum. –

+0

O zaman bir beyaz alan sorunundan şüpheleniyorum. Tüm görünmez karakterleri görmek için dosyayı vi/path/to/database.yml '': set list' ile açın. – Josh

+0

Sadece denedim, doğru yerde görmek için umduğum yer için teşekkürler sağda gördüğüm $ sembolleri görüyorum. –

0

sizin için çalışmalar hatası çatallamak umut! Belki bazı önbelleğe alma veya günlük sorunları Bu, kodumuzdaki hatalardan hiçbir şey olmadığını gösterir.

Ekibim çöz.

  • projeyi silmek

  • git

  • başlangıç ​​sunucusunu database.yml

Her şey tamam olduğunu konfigürasyon dosyasında projeyi

  • klonlamak!

    Aynı proje hatalar gitti! Bu yüzden env sorunları veya önbellek ya da kütük olduğunu düşünüyoruz./Lib/active_record/görevler/database_tasks.rb ActiveRecord bir 'parlak' çizgi vardır

  • 3

    : jan 8 kadar 2014 benziyordu,

    environments << 'test' if environment == 'development' && ENV['RAILS_ENV'].nil? 
    

    :

    environments << 'test' if environment == 'development' 
    
    2

    O Çözümünüzün birkaç şeyi içerebileceği gibi geliyor. Ortamınız mevcut öğelerden dolayı göçü kafa karıştırıyor olabilir. kullanarak veritabanı sıfırlayın:

    rake db:reset 
    

    veya

    rake db:drop db:create 
    

    ortamınıza bağlı olarak, göç yapmak mümkün olmalıdır.

    rake db:migrate 
    

    PS - Sen her komutun başında bundle exec eklemek gerekebilir.

    İyi şanslar.

    0

    Sen tırmık db kullanabilirsiniz:

    RAILS_ENV = "geliştirme" göç veya

    tırmık db

    seti RAILS_ENV = geliştirme gibi kullanabilirsiniz: benim tek öneri nasılsa olduğunu

    İlgili konular