2012-05-17 11 views
5

मैं रेक पर नया हूं और मैं कुछ कार्यों को स्वचालित करने में अपना रास्ता ढूंढने की कोशिश कर रहा हूं। तो मैं अपनी पहली रेक कार्य लिखा था और विफल रहा है:रेक डीबी का उपयोग करना: किसी अन्य कार्य पत्तियां के अंदर माइग्रेट माइग्रेशन लंबित

namespace :app do 
    desc "Leaves application like new" 
    task :reset => :environment do 
    Rake::Task['db:drop:all'].invoke 
    Rake::Task['db:create:all'].invoke 
    Rake::Task['db:migrate'].invoke 
    Rake::Task['db:seed'].invoke 
    end 
end 

मुझे पता है क्यों यह काम नहीं कर रहा चाहते हैं। कॉल करने के बाद:

rake app:reset 

सब कुछ ठीक चलता है, मैं, स्क्रीन पर प्रवास संदेश देख सकते हैं इस तरह:

== CreateGalerias: migrating ================================================= 
-- create_table(:galerias) 
NOTICE: CREATE TABLE will create implicit sequence "galerias_id_seq" for serial column "galerias.id" 
NOTICE: CREATE TABLE/PRIMARY KEY will create implicit index "galerias_pkey" for table "galerias" 
    -> 0.1191s 
== CreateGalerias: migrated (0.1194s) ======================================== 

लेकिन, अंत में मैं यह संदेश प्राप्त:

You have 11 pending migrations: 
    20110704052637 CreatePersonas 
    20110709100632 CreateOrganizaciones 
    20110709100646 CreateEventos 
    20110816102451 CreateMembresias 
    20110816155851 CreateCelebraciones 
    20110822135820 ActsAsTaggableOnMigration 
    20120410063100 CreateDocumentos 
    20120507200516 CreateUsuarios 
    20120515214226 ActivaUnnaccent 
    20120516091228 CreateGalerias 
    20120517004708 SetupHstore 
Run `rake db:migrate` to update your database then try again. 

क्या यह सिर्फ डेटाबेस माइग्रेट नहीं किया था? यह इसके बारे में शिकायत क्यों कर रहा है?

+0

क्या आप विकास पर्यावरण पर काम कर रहे हैं? ऐसा लगता है कि रेक वातावरण विभिन्न पर्यावरण पर माइग्रेशन चला रहा है। अपने रेक कार्य को चलाने के दौरान RAILS_ENV पास करने का प्रयास करें। – decay

उत्तर

2

ध्यान रखें कि डीबी: ड्रॉप: सभी और डीबी: बनाएं: सभी वातावरण पर संचालित होते हैं, और डीबी: माइग्रेट और डीबी: बीज नहीं करते हैं, इसलिए आप शायद एक अनपेक्षित वातावरण में माइग्रेट कर रहे हैं। डीबी बदलने की कोशिश करें: ड्रॉप: सभी को डीबी: ड्रॉप और डीबी: बनाएं: सभी को डीबी: बनाएं, और किसी विशेष वातावरण को निर्दिष्ट करने वाले कार्य को चलाएं:

rake RAILS_ENV=production app:reset 
+0

हां, जवाब बदलना था ** डीबी: ड्रॉप: सभी ** से ** डीबी: ड्रॉप ** और ** डीबी: बनाएं: सभी ** ** ** डीबी: बनाएं **। उसके बाद, ** रेक ऐप: रीसेट ** समस्याओं के बिना काम किया! – zenw0lf

संबंधित मुद्दे