Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python
Войти
Регистрация
Восстановить пароль
 
DeV1doR
0 / 0 / 0
Регистрация: 01.12.2014
Сообщений: 32
#1

Связывание таблиц в alembic

27.04.2015, 23:28. Просмотров 412. Ответов 0
Метки нет (Все метки)

Всем привет! Не могу связать две таблицы, идет ругань, а в интернете полно примеров с flask+alchemy, но мне нужен чисто sqlalchemy+alembic для tornado. Вообщем следующий код:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
def upgrade():
    op.create_table(
        'problems',
        sa.Column('Id', sa.Integer, primary_key=True, nullable=False, autoincrement=True), sa.ForeignKey('posted_problem.Problems_Id') ),
        sa.Column('Title', sa.String(45), nullable=False),
        sa.Column('Content', sa.String(45), nullable=False),
        sa.Column('Proposal', sa.String(45), nullable=False),
        sa.Column('Severity', sa.Integer, nullable=False),
        sa.Column('Moderation', sa.Integer, nullable=False),
        sa.Column('Votes', sa.Integer, nullable=False),
        sa.Column('Latitude', sa.Float, nullable=False),
        sa.Column('Longtitude', sa.Float, nullable=False),
        sa.Column('Status', sa.Integer, nullable=False),
        sa.Column('ProblemTypes_Id', sa.Integer, nullable=False)
    )
 
    op.create_table(
        'posted_problem',
        sa.Column('Id', sa.Integer, primary_key=True, nullable=False, autoincrement=True),
        sa.Column('Content', sa.String(45), nullable=False),
        sa.Column('Date', sa.DateTime, nullable=False),
        sa.Column('ActivityTypes_Id', sa.Integer, nullable=False),
        sa.Column('Users_Id', sa.Integer, nullable=False),
        sa.Column('Problems_Id', sa.Integer, nullable=False), sa.ForeignKey('problems.Id') )
    )
при вводе alembic upgrade head
или
alembic upgrade 8978c0d5e81(моя ревизия)
выдает ошибку:

SyntaxError: non-keyword arg after keyword arg

Кто сталкивался, буду рад любой помощи.)))

Добавлено через 39 секунд
Решил так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
def upgrade():
 
    op.create_table(
        'problems',
        sa.Column('Id', sa.Integer, primary_key=True, nullable=False, autoincrement=True),
        sa.Column('Title', sa.String(45), nullable=False),
        sa.Column('Content', sa.String(45), nullable=False),
        sa.Column('Proposal', sa.String(45), nullable=False),
        sa.Column('Severity', sa.Integer, nullable=False),
        sa.Column('Moderation', sa.Integer, nullable=False),
        sa.Column('Votes', sa.Integer, nullable=False),
        sa.Column('Latitude', sa.Float, nullable=False),
        sa.Column('Longtitude', sa.Float, nullable=False),
        sa.Column('Status', sa.Integer, nullable=False),
        sa.Column('ProblemTypes_Id', sa.Integer, nullable=False)
    )
 
    op.create_table(
        'posted_problem',
        sa.Column('Id', sa.Integer, primary_key=True, nullable=False, autoincrement=True),
        sa.Column('Content', sa.String(45), nullable=False),
        sa.Column('Date', sa.DateTime, nullable=False),
        sa.Column('ActivityTypes_Id', sa.Integer, nullable=False),
        sa.Column('Users_Id', sa.Integer, nullable=False),
        sa.Column('Problems_Id', sa.Integer, nullable=False),
# добавил тут
        sa.ForeignKeyConstraint(
            ['Problems_Id'], ['problems.Id']
        )
#
    )
В SQL форме:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
BEGIN;
 
CREATE TABLE alembic_version (
    version_num VARCHAR(32) NOT NULL
);
 
CREATE TABLE problems (
    "Id" SERIAL NOT NULL,
    "Title" VARCHAR(45) NOT NULL,
    "Content" VARCHAR(45) NOT NULL,
    "Proposal" VARCHAR(45) NOT NULL,
    "Severity" INTEGER NOT NULL,
    "Moderation" INTEGER NOT NULL,
    "Votes" INTEGER NOT NULL,
    "Latitude" FLOAT NOT NULL,
    "Longtitude" FLOAT NOT NULL,
    "Status" INTEGER NOT NULL,
    "ProblemTypes_Id" INTEGER NOT NULL,
    PRIMARY KEY ("Id")
);
 
CREATE TABLE posted_problem (
    "Id" SERIAL NOT NULL,
    "Content" VARCHAR(45) NOT NULL,
    "Date" TIMESTAMP WITHOUT TIME ZONE NOT NULL,
    "ActivityTypes_Id" INTEGER NOT NULL,
    "Users_Id" INTEGER NOT NULL,
    "Problems_Id" INTEGER NOT NULL,
    PRIMARY KEY ("Id"),
    FOREIGN KEY("Problems_Id") REFERENCES problems ("Id")
);
 
INSERT INTO alembic_version (version_num) VALUES ('44bc167ec3c6');
 
COMMIT;

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2015, 23:28
Ответы с готовыми решениями:

Связывание UI c проектом
Доброго времени суток! Делаю проект, написал код, хочу теперь привязать его к...

Связывание таблиц
Здравствуйте, есть задание: Кто родился вне брака? Список должен включать: ID...

Связывание таблиц
Всем привет) Помогите пожалуйста решить проблему... Использую бд - SQlite...

Связывание таблиц
Почитал много мануалов, покурил форумы. прочитал про индексы. Но так и не пойму...

связывание таблиц
Подскажите пожалуйста как связывать таблицы в делфи.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2015, 23:28

Связывание таблиц
День добрый, столкнулся со странным, с моей точки зрения, поведением таблицы в...

связывание таблиц
На форме имеется DBCombobox который отображает данные из базы (таблицы...

связывание 3-х таблиц в бд
Привет Всем! У меня встала проблема с моей базой данных. У меня имеется 3...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru