PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

nie można utworzyć automatycznego przyrostowego klucza podstawowego za pomocą flask-sqlalchemy

Nie ma nic złego w powyższym kodzie. W rzeczywistości nie potrzebujesz nawet autoincrement=True lub db.Sequence('seq_reg_id', start=1, increment=1), ponieważ SQLAlchemy automatycznie ustawi pierwszą Integer Kolumna PK, która nie jest oznaczona jako FK jako autoincrement=True .

Tutaj przygotowałem działającą konfigurację opartą na twoim. ORM SQLAlechemy zajmie się generowaniem identyfikatorów i wypełnianiem nimi obiektów jeśli używasz klasy opartej na deklaratywnych podstawach które zdefiniowałeś do tworzenia instancji Twojego obiektu.

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. Automatyzacja audytów bezpieczeństwa dla PostgreSQL

  2. Konwertuj wszystkie rekordy w postgresie na wielkie litery i pierwsze litery

  3. Jak wstawić JSONB do Postgresql za pomocą Pythona?

  4. Zachowaj strefę czasową w typie PostgreSQL timestamptz

  5. Wdrażanie i konfiguracja PostgreSQL za pomocą Puppet