Как установить столбец Array с пустым массивом по умолчанию в SQLAlchemy + Postgres - PullRequest
0 голосов
/ 22 октября 2018

Я хочу перечислить sources части информации.Вместо того, чтобы создавать другую таблицу с отношением one to many, я решил использовать тип Array.

Чтобы я попытался:

app = Flask(__name__)
db = SQLAlchemy(app)

...

class Edge(db.Model):

    sources = db.Column(
        db.ARRAY(db.String),
        default=db.ARRAY(db.String)
    )

Но добавление edge даетмне эта ошибка:

ProgrammingError: (psycopg2.ProgrammingError) не может адаптировать тип 'ARRAY' [SQL: 'INSERT INTO ребер (child_id, parent_id, sources) VALUES (% (child_id) s,% (parent_id) s,% (sources) s '] [параметры: {' child_id ': 20,' parent_id ': 26,' sources ': ARRAY (String ())}]

Я не могу найти хорошее руководство по использованию столбца array с массивом enmpty по умолчанию.

Спасибо

1 Ответ

0 голосов
/ 22 октября 2018

Я в конце концов нашел ответ в комментариях здесь :

sources = db.Column(
    db.ARRAY(db.String),
    server_default="{}"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...