Я пытаюсь создать классы для sqlalchemy, чтобы заставить sqlalchemy создавать базу данных Sometables.
Вот код SQL:
CREATE table "Sometable" (
id INTEGER UNIQUE NOT NULL PRIMARY KEY,
name TEXT NOT NULL,
database_id INTEGER REFERENCES databases (id) ON DELETE CASCADE NOT NULL,
CONSTRAINT a UNIQUE (name, database_id) ON CONFLICT IGNORE
);
Я пробовал до сих пор:
class Sometable(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(140))
database_id = db.Column(db.Integer,
db.ForeignKeyConstraint("Sometable.database_id", "databases.id"))
class Databases(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(140))
и
class Sometable(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
database_id = db.Column(db.Integer, db.ForeignKeyConstraint(["Sometable.database_id"], ["databases.id"]))
class Databases(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
и
class Sometable(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
database_id = db.Column(db.Integer, db.ForeignKey("databases.id"))
db.ForeignKeyConstraint(["database_id"], ["databases.id"])
class Databases(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
и я не могу понять, как это сделать. Когда я делаю колбу дБ init; мигрировать; апгрейд получаю схему Sometable:
CREATE TABLE Sometable(
id INTEGER NOT NULL,
name VARCHAR,
database_id INTEGER,
PRIMARY KEY (id),
FOREIGN KEY(database_id) REFERENCES databases (id)
@ Редактировать
а также попробовал:
class Sometable(db.Model):
id = db.Column(db.Integer, primary_key=True, unique=True)
name = db.Column(db.String)
database_id = db.Column(db.Integer, db.ForeignKey("databases.id"))
db.ForeignKeyConstraint(["database_id"], ["databases.id"])
db.UniqueConstraint("name", "database_id")
class Databases(db.Model):
id = db.Column(db.Integer, primary_key=True, unique=True)
name = db.Column(db.String)