Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

तालिका बनाने के लिए माइग्रेशन Mysql2 ::त्रुटि उठाता है:तालिका मौजूद नहीं है

एक नया मॉडल बनाने का प्रयास करते समय मुझे एक समान त्रुटि मिली जिसमें मौजूदा मॉडल का संदर्भ है जो रेल 5.1 पर माइग्रेट करने से पहले बनाया गया था।

हालाँकि त्रुटि संदेश उसके बारे में बहुत स्पष्ट नहीं था, मेरे मामले में यह पता चला कि समस्या पुराने मॉडल की प्राथमिक कुंजी और नए मॉडल की विदेशी कुंजी के बीच डेटा प्रकार बेमेल थी (MySQL इसकी अनुमति नहीं देता है)। ऐसा इसलिए था क्योंकि रेल 5.1 के बाद से सभी प्राथमिक और विदेशी कुंजियों का डिफ़ॉल्ट डेटा प्रकार बड़ा है, लेकिन पुराने मॉडल के लिए प्राथमिक कुंजी प्रकार अभी भी पूर्णांक था।

मैंने मौजूदा मॉडलों की सभी प्राथमिक और विदेशी कुंजियों को बिगिंट में परिवर्तित करके इसे हल किया है, इसलिए मैं रेल के नए डिफ़ॉल्ट का उपयोग कर सकता हूं और इसके बारे में भूल सकता हूं।

वर्कअराउंड नई विदेशी कुंजियों के लिए पूर्णांक प्रकार निर्दिष्ट करना भी हो सकता है ताकि वे पुराने मॉडल के प्राथमिक कुंजी प्रकार से मेल खा सकें। कुछ इस तरह:

class CreateUserImages < ActiveRecord::Migration[5.1]
  def change
    create_table :user_images do |t|
      t.references :user, type: :integer, foreign_key: true
      t.string :url
    end
  end
end


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 70 केबी से ऊपर की छवि अस्थायी निर्देशिका में अपलोड नहीं होती है

  2. mysql खाली सेट लौट रहा है

  3. एसक्यूएल:दो टेबल पर शामिल हों जहां कॉलम शून्य है

  4. django टेम्पलेट में लाइन ब्रेक के साथ डेटाबेस से टेक्स्ट कैसे आउटपुट करें?

  5. TIMESTAMP डेटाटाइप का उपयोग करके किसी विशिष्ट तिथि के लिए पंक्तियों का चयन करें