2014-05-20 12 views
14

Quando si utilizza questo comando:Quando si tenta di generare un modello con Rails e PostgreSQL, il comando si blocca senza errori

rails generate model Event name:string

Non succede nulla, e devo CTRL + C.

Le versioni che sto usando sono:

  • Rubino 2.1.1p76
  • Rails 4.1.0
  • PostgreSQL 9.3.4
  • Mac OS X 10.9.3

Ho verificato che Postgres funzioni e posso collegarmi eseguendo psql easyEventTracker_development. Ho installato il mio progetto di rotaie eseguendo rails new easyEventTracker -d postgresql

Quando si esegue rake db:create, ricevo il seguente messaggio:

easyEventTracker_development esiste già
easyEventTracker_test esiste già

Contenuto del file database.yml:

default: &default 
    adapter: postgresql 
    encoding: unicode 
    pool: 5 

development: 
    <<: *default 
    database: easyEventTracker_development 

test: 
    <<: *default 
    database: easyEventTracker_test 

production: 
    <<: *default 
    database: easyEventTracker_production 
    username: easyEventTracker 
    password: <%= ENV['EASYEVENTTRACKER_DATABASE_PASSWORD'] %> 

Se installo il progetto usando Rails con SQLite, tutto funziona correttamente.

+0

Immagino che non sia possibile generare alcun modello (controllare questo). "Posso collegarmi" - come hai fatto a controllarlo? Mostra il tuo 'database.yml' – zishe

+1

Prova a eseguire la console' rails' e accedi ad alcuni dei tuoi modelli esistenti, che dovrebbero verificare che sei connesso a PostGreSQL. – Patru

+0

Penso che non abbia modelli (tabelle). – zishe

risposta

64

C'è un bug in primavera con Rails 4.1 che provoca generatori da appendere .

Provare a eseguire spring stop ed eseguire nuovamente il generatore.

+1

Potrebbe gentilmente incollare l'url per il problema? Grazie – tvdeyen

+0

Ottima risposta, dovrei ricominciare Spring dopo il successo della migrazione? –

+1

Lo stesso con le rotaie 5-alfa. Bella risposta! – errata

0

Sembra che non si stiano fornendo username e password per i database di sviluppo e di test. È necessario verificare si è in grado di connettersi al database utilizzando

rails dbconsole 

che fornirà una specifica SQL-prompt di database che utilizza le credenziali fornite in database.yml. Mentre sqlite3 è un programma basato su file che non ha bisogno di credenziali di accesso ne avrete bisogno anche per la modalità di sviluppo se si utilizza un database che è in grado di utilizzare schemi diversi.

se si imposta lo schema di sviluppo a lavorare senza una password è comunque necessario fornire il nome dello schema come username come in

username: easyEventTracker_development 
0

La stessa cosa è successa a me e non stavo usando Spring, quindi la soluzione non ha funzionato.

Ho appena chiuso la console, l'ho riaperta, ho eseguito lo stesso comando e ha funzionato.

Problemi correlati