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

कुप्पी-sqlalchemy के साथ स्वत:वृद्धिशील प्राथमिक कुंजी बनाने में असमर्थ

उपरोक्त कोड में कुछ भी गलत नहीं है। वास्तव में, आपको autoincrement=True . की भी आवश्यकता नहीं है या db.Sequence('seq_reg_id', start=1, increment=1), चूंकि SQLAlchemy स्वचालित रूप से पहला Integer सेट करेगा PK स्तंभ जिसे FK के रूप में autoincrement=True . के रूप में चिह्नित नहीं किया गया है ।

यहां, मैंने आपके आधार पर एक कार्यशील सेटअप तैयार किया है। अगर आप डिक्लेरेटिव बेस बेस्ड क्लास का इस्तेमाल करते हैं तो SQLAlechemy का ORM उनके साथ id's जेनरेट करने और ऑब्जेक्ट्स को पॉप्युलेट करने का ख्याल रखेगा। जिसे आपने अपनी वस्तु के उदाहरण बनाने के लिए परिभाषित किया है।

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.debug = True
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://user:[email protected]/testdb'
app.config['SQLALCHEMY_ECHO'] = True
db = SQLAlchemy(app)

class Region(db.Model):
    __tablename__ = 'regions'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100))

db.drop_all()
db.create_all()

region = Region(name='Over Yonder Thar')
app.logger.info(region.id) # currently None, before persistence

db.session.add(region)
db.session.commit()
app.logger.info(region.id) # gets assigned an id of 1 after being persisted

region2 = Region(name='Yet Another Up Yar')
db.session.add(region2)
db.session.commit()
app.logger.info(region2.id) # and 2

if __name__ == '__main__':
    app.run(port=9001)


  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 में तार्किक प्रतिकृति का अवलोकन

  2. पोस्टग्रेज कॉलम उपनाम समस्या

  3. POSTGRESQL दो अलग-अलग तालिकाओं की प्राथमिक कुंजी का संदर्भ देने वाली विदेशी कुंजी

  4. PostgreSQL के साथ डेटाबेस टेबल आरेख उत्पन्न करने के लिए उपकरण?

  5. स्प्रिंग डॉकर कंटेनर पोस्टग्रेज डॉकर कंटेनर तक नहीं पहुंच सकता है