2017-06-07 11 views
7

मैंने rails db:migrate में टाइप किया और निम्न त्रुटि प्राप्त की। मैंने गुमराह किया और किसी ने माइग्रेशन संस्करण को [4.2] से [5.1] में बदलने जैसे कुछ कहा लेकिन यह अभी भी काम नहीं कर रहा है।मेरी रेल डीबी क्यों है: माइग्रेट काम नहीं कर रहा है?

rails db:migrate rails aborted! StandardError: An error has occurred, this and all later migrations canceled:

Directly inheriting from ActiveRecord::Migration is not supported. Please specify the Rails release the migration was written for:

class CreateCkeditorAssets < ActiveRecord::Migration[4.2]

+3

को उन्नयन कर रहे हैं के साथ 4.2 जगह ले सकता है आप पूरा पश्व-अनुरेखन पेस्ट कर सकते हैं? –

+1

अपना माइग्रेशन दिखाएं। इसके अलावा आपके रेल संस्करण –

उत्तर

12

रेल 5 ने माइग्रेशन के तरीके को बदल दिया। आप (यदि आप रेल 5.1 का उपयोग कर रहे कल्पना करते हुए) इस तरह 5 शुरू कर रेल रेल रिहाई यह निर्दिष्ट करना होगा:

class CreateCkeditorAssets < ActiveRecord::Migration[5.1] 

वैकल्पिक रूप से, आप एक परीक्षण माइग्रेशन बनाने का प्रयास करें और देखें कि रेल के अपने संस्करण एक प्रवास उत्पन्न कर सकते हैं और फिर वहाँ से ले:

rails g model Test name:string 
+0

धन्यवाद क्या है! मैं इस समस्या को ठीक करने में सक्षम नहीं था जब तक कि मुझे पता चला कि मैं माइग्रेशन फ़ाइल के बजाय ckeditor फ़ोल्डर में फ़ाइलों को देख रहा था !! –

7

Aditya पहले से ही जवाब लिखा, एक व्यस्त काम कर रहा है हाथ से सभी माइग्रेशन बदलने, तो मैं एक एक लाइनर पटकथा लिखी है कि

linux में (जीएनयू sed) करने के लिए

grep -rl "ActiveRecord::Migration$" db | xargs sed -i 's/ActiveRecord::Migration/ActiveRecord::Migration[4.2]/g' 

मैक में (BSD sed)

grep -rl "ActiveRecord::Migration$" db | xargs sed -i "" "s/ActiveRecord::Migration/ActiveRecord::Migration[4.2]/g" 

ध्यान दें, आप रेल जहाँ से यिउ 5.1

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