Bird
Raised Fist0
Flaskframework~10 mins

Database migrations with Flask-Migrate - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to initialize Flask-Migrate with the Flask app and SQLAlchemy database.

Flask
from flask_migrate import Migrate
migrate = Migrate(app, [1])
Drag options to blanks, or click blank then click option'
Amigrate
Bdb
Capp
DMigrate
Attempts:
3 left
💡 Hint
Common Mistakes
Passing the Flask app twice instead of the database instance.
Using the wrong variable name for the database.
2fill in blank
medium

Complete the command to create a new migration script with Flask-Migrate.

Flask
flask db [1] -m "Initial migration"
Drag options to blanks, or click blank then click option'
Amigrate
Bdowngrade
Cinit
Dupgrade
Attempts:
3 left
💡 Hint
Common Mistakes
Using upgrade instead of migrate to create migration scripts.
Using init after the project is already initialized.
3fill in blank
hard

Fix the error in the command to apply migrations to the database.

Flask
flask db [1]
Drag options to blanks, or click blank then click option'
Aupgrade
Bmigrate
Cinit
Drevision
Attempts:
3 left
💡 Hint
Common Mistakes
Using migrate instead of upgrade to apply changes.
Using init after migrations are already set up.
4fill in blank
hard

Fill both blanks to import and initialize Flask-Migrate in your app factory function.

Flask
from flask_migrate import [1]

def create_app():
    app = Flask(__name__)
    db.init_app(app)
    [2] = [1](app, db)
    return app
Drag options to blanks, or click blank then click option'
AMigrate
Bmigrate
CMigrateApp
Dmigrate_app
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase for the class import.
Using the same name for both class and instance.
5fill in blank
hard

Fill all three blanks to create a migration script and apply it in one sequence.

Flask
flask db [1] -m "Add user table"
flask db [2]
flask db [3]
Drag options to blanks, or click blank then click option'
Amigrate
Bupgrade
Cdowngrade
Dinit
Attempts:
3 left
💡 Hint
Common Mistakes
Using init in the middle of migration commands.
Mixing up upgrade and downgrade order.

Practice

(1/5)
1. What is the main purpose of Flask-Migrate in a Flask application?
easy
A. To handle user authentication and sessions
B. To create HTML templates for the Flask app
C. To manage database schema changes safely using migrations
D. To serve static files like CSS and JavaScript

Solution

  1. Step 1: Understand Flask-Migrate's role

    Flask-Migrate is a tool that helps manage changes to the database structure over time.
  2. Step 2: Identify the correct purpose

    It uses migrations to safely update the database schema without losing data.
  3. Final Answer:

    To manage database schema changes safely using migrations -> Option C
  4. Quick Check:

    Flask-Migrate = database migrations [OK]
Hint: Flask-Migrate is about database schema changes [OK]
Common Mistakes:
  • Confusing Flask-Migrate with template or static file handling
  • Thinking it manages user sessions
  • Assuming it creates HTML or CSS files
2. Which command correctly initializes Flask-Migrate in your Flask project?
easy
A. flask db init
B. flask migrate start
C. flask db create
D. flask migrate init

Solution

  1. Step 1: Recall the initialization command

    The command to set up Flask-Migrate for the first time is flask db init.
  2. Step 2: Check other options

    Other commands like flask migrate start or flask db create are incorrect or do not exist.
  3. Final Answer:

    flask db init -> Option A
  4. Quick Check:

    Initialize Flask-Migrate = flask db init [OK]
Hint: Use 'flask db init' to start migrations [OK]
Common Mistakes:
  • Using 'flask migrate init' instead of 'flask db init'
  • Confusing 'start' with 'init'
  • Trying commands that don't exist in Flask-Migrate
3. Given the following commands run in order:
flask db init
flask db migrate -m "Add users table"
flask db upgrade

What is the effect on the database?
medium
A. No changes happen until the app restarts
B. The database is reset and all data is lost
C. Only a migration script is created but not applied
D. The database schema is updated with the new users table

Solution

  1. Step 1: Understand each command's role

    flask db init sets up migration files, flask db migrate creates a migration script, and flask db upgrade applies changes to the database.
  2. Step 2: Determine the final effect

    After running all three, the database schema is updated with the new users table as described in the migration.
  3. Final Answer:

    The database schema is updated with the new users table -> Option D
  4. Quick Check:

    Upgrade applies migration = schema updated [OK]
Hint: Upgrade applies migration changes to DB [OK]
Common Mistakes:
  • Thinking upgrade resets the database
  • Believing migrate alone applies changes
  • Assuming changes need app restart
4. You run flask db migrate but see no new migration script created. What is the most likely cause?
medium
A. You forgot to run flask db init first
B. No changes detected in the models since last migration
C. The database server is down
D. You need to restart the Flask app

Solution

  1. Step 1: Understand what triggers migration scripts

    flask db migrate creates a script only if it detects changes in the database models.
  2. Step 2: Identify the cause of no new script

    If no changes are found, no new migration script is generated, which is the most common reason.
  3. Final Answer:

    No changes detected in the models since last migration -> Option B
  4. Quick Check:

    No model changes = no migration script [OK]
Hint: No model changes means no migration script [OK]
Common Mistakes:
  • Assuming database server status affects migration script creation
  • Thinking app restart is needed for migrations
  • Forgetting to initialize migrations (less common if already done)
5. You want to rename a column in your database using Flask-Migrate. Which sequence of steps is correct?
hard
A. Update the model's column name, run flask db migrate, then flask db upgrade
B. Run flask db upgrade first, then update the model, then flask db migrate
C. Delete the old column manually, update the model, then run flask db migrate
D. Update the model, restart Flask app, then run flask db upgrade

Solution

  1. Step 1: Change the model to reflect the new column name

    Modify your SQLAlchemy model to rename the column as desired.
  2. Step 2: Create and apply migration

    Run flask db migrate to generate the migration script, then flask db upgrade to apply it to the database.
  3. Final Answer:

    Update the model's column name, run flask db migrate, then flask db upgrade -> Option A
  4. Quick Check:

    Model change + migrate + upgrade = rename column [OK]
Hint: Change model first, then migrate and upgrade [OK]
Common Mistakes:
  • Running upgrade before migrate
  • Manually deleting columns instead of migrating
  • Restarting app without migration commands
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard