-
Notifications
You must be signed in to change notification settings - Fork 24
Closed
Description
Describe the bug
When a column is set as NOT NULL and a foreign key is added, Positional argument cannot appear after keyword arguments error arises in models.py.
To Reproduce
Steps to reproduce the behavior:
Create database.sql.
CREATE TABLE "merchants" (
"id" int PRIMARY KEY,
"merchant_name" varchar
);
CREATE TABLE "products" (
"id" int PRIMARY KEY,
"merchant_id" int NOT NULL
);
ALTER TABLE "products" ADD FOREIGN KEY ("merchant_id") REFERENCES "merchants" ("id");Following models.py is produced after create_models.
import sqlalchemy as sa
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Merchants(Base):
__tablename__ = 'merchants'
id = sa.Column(sa.Integer(), primary_key=True)
merchant_name = sa.Column(sa.String())
class Products(Base):
__tablename__ = 'products'
id = sa.Column(sa.Integer(), primary_key=True)
merchant_id = sa.Column(sa.Integer(), nullable=False, sa.ForeignKey('merchants.id'))Expected behavior
In models.py, the last sentence should be like following.
merchant_id = sa.Column(sa.Integer(), sa.ForeignKey('merchants.id'), nullable=False)Metadata
Metadata
Assignees
Labels
No labels