0Pricing
Flask Academy · 课时

检查并编辑生成的脚本

应用前修正自动生成的迁移

检查并编辑生成的脚本 是 CoddyKit 上的免费 Flask Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Flask Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Flask Academy 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

Autogenerate Is Not Perfect

Autogenerate is a great first draft, not a final answer. Always review the script before you apply it anywhere. 🔍

Open the Versions File

Each script lives in the versions folder. Open it and read the upgrade and downgrade functions like any other code.

The op Object

Inside the functions you will see calls on the op object, like op.create_table and op.add_column, each describing one schema change.

op.add_column("user", sa.Column("age", sa.Integer()))

What Alembic Misses

Autogenerate often misses renames, seeing them as a drop plus an add. That would silently delete the column data.

Fix Renames by Hand

When a column is really being renamed, replace the drop and add with a single alter_column that preserves the data.

op.alter_column("user", "name", new_column_name="full_name")

Check the downgrade

Confirm the downgrade truly reverses the upgrade. A broken downgrade leaves you stuck if you ever need to roll back.

Watch NOT NULL Columns

Adding a non-nullable column to a table with rows will fail. Add it nullable first, fill values, then make it required.

Add Data Steps Yourself

Need to backfill values? Add an op.execute call with raw SQL between the schema steps to migrate existing data safely.

op.execute("UPDATE user SET age = 0")

Test on a Copy First

Before touching production, run the migration on a copy of real data. It surfaces failures while they are still cheap to fix.

One Change per Migration

Keep each migration focused on one logical change. Small scripts are far easier to review, test, and roll back cleanly.

Commit the Final Script

Once edited and tested, commit the script. Never change a migration that has already shipped to production history.

Quick Check

You renamed a column, but autogenerate wrote a drop and an add. What is the danger?

Recap

You learned to review generated scripts, fix renames with alter_column, handle non-null columns, and test before shipping. 🎉

常见问题解答

「检查并编辑生成的脚本」课时是免费的吗?

是的 — 「检查并编辑生成的脚本」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Flask Academy 课程的其余内容,请升级到 CoddyKit PRO。 Flask Academy 课程共包含 4 节课。

「检查并编辑生成的脚本」这节课中我会学到什么?

应用前修正自动生成的迁移 你通过在浏览器中直接运行的动手代码来练习 Flask Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Flask Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Flask Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「检查并编辑生成的脚本」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Flask Academy 课中编写并运行代码吗?

能。每节 Flask Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 为什么需要迁移而不是 create_all
  2. 初始化并自动生成迁移
  3. 使用 upgrade 应用迁移与回滚
  4. 检查并编辑生成的脚本
← 返回 Flask Academy