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

sqlalchemy-migrate का उपयोग करके कॉलम प्रकार को वर्ण से पूर्णांक में कैसे बदलें?

ऐसा लगता है कि sqlalchemy.migrate के पास पोस्टग्रेस्क्ल के लिए स्ट्रिंग से इंटीजर कॉलम प्रकारों में परिवर्तन के मामले में मान्य क्वेरी प्रस्तुत करने के लिए समर्थन नहीं है।

आपके मामले में मैं इसे सीधे क्वेरी निष्पादन के रूप में लागू करूंगा और आगे बढ़ूंगा।

def downgrade(migrate_engine):
    # ALTER TABLE courses ALTER COLUMN number SET DATA TYPE integer;
    migrate_engine.execute('ALTER TABLE courses ALTER COLUMN number TYPE INTEGER USING number::numeric')

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL - एक संख्यात्मक क्षेत्र में सेकंड को HH:MM:SS . में कैसे बदलें

  2. SQL सर्वर NVARCHAR के बराबर PostgreSQL क्या है?

  3. Postgresql में सभी परिणाम दिखाएं?

  4. स्प्रिंग, हाइबरनेट और C3P0 के साथ बहु-किरायेदार वेब ऐप में कनेक्शन पूलिंग प्रबंधित करें

  5. Psycopg2 स्थापित करने में त्रुटि ==2.6.2