0
我正在爲我的SQLAlchemy應用程序編寫數據庫遷移腳本。 下面的遷移工作。但它實際上並沒有做任何事情(尚未!):如何更新SQLAlchemy Alembic遷移中的記錄?
1: from alembic import op
2: import sqlalchemy as sa
3:
4: def upgrade():
5: my_table = sa.Table('my_table',
6: sa.MetaData(),
7: sa.Column('my_id', sa.Integer, primary_key=True),
8: sa.Column('my_attribute1', sa.Text(), nullable=True),
9: sa.Column('my_attribute2', sa.String(length=128), nullable=True))
10:
11:
12: connection = op.get_bind()
13: for my_record in connection.execute(my_table.select()):
14: x = my_record.my_id
15: print x
我想修改上面的遷移做以下的事情,但我不知道如何:
- 在線路#13我要選擇僅在
my_attribute1
=='Hello'
- 在線#15,而不是進行打印語句,我想更新
my_record
這樣my_attribute2
設置爲my_attribute1[:10] + 'Goodbye'
我該怎麼辦?當我試圖用where子句選擇&更新時,它們不起作用。 manual沒有太大的幫助。
你有一些縮進問題。 for循環不是升級功能的一部分。請包括您在問題中嘗試使用where子句的選擇和更新。您應該閱讀[SQL表達式語言教程](http://docs.sqlalchemy.org/en/latest/core/tutorial.html#inserts-updates-and-deletes),而不是DML手冊。 –
另外,請描述他們如何以及爲什麼他們不工作。你有沒有例外?如果是這樣,請包含回溯。升級是否運行,但沒有保存更改? –