What is the purpose of Flask-Migrate in a Flask application?
Flask-Migrate helps manage database schema changes over time by creating and applying migrations, so you can update your database structure without losing data.
Click to reveal answer
beginner
Which command initializes Flask-Migrate in your Flask project?
The command flask db init sets up the migration environment by creating a migrations folder to track changes.
Click to reveal answer
beginner
What does the command flask db migrate -m "message" do?
It creates a new migration script that records changes in your database models, with a message describing the update.
Click to reveal answer
beginner
How do you apply the migration scripts to update the database schema?
Use flask db upgrade to apply the latest migration scripts and update the database structure accordingly.
Click to reveal answer
intermediate
Why is it important to use migrations instead of manually changing the database?
Migrations keep track of changes safely, allow easy rollback, and help multiple developers stay in sync without losing data or causing errors.
Click to reveal answer
Which Flask-Migrate command creates the migration folder?
Aflask db init
Bflask db migrate
Cflask db upgrade
Dflask db create
✗ Incorrect
The flask db init command initializes the migration environment by creating the migrations folder.
What does flask db upgrade do?
ADeletes old migration files
BCreates a new migration script
CApplies migration scripts to update the database
DRolls back the last migration
✗ Incorrect
flask db upgrade applies the migration scripts to update the database schema.
When should you run flask db migrate?
AAfter changing your database models
BBefore initializing migrations
CTo apply migrations to the database
DTo delete migration history
✗ Incorrect
You run flask db migrate after changing your models to create a migration script reflecting those changes.
Which file or folder does Flask-Migrate create to track migrations?
Amodels.py file
Bmigrate.py file
Cdb.sqlite file
Dmigrations folder
✗ Incorrect
Flask-Migrate creates a migrations folder to store migration scripts and track changes.
What is a key benefit of using Flask-Migrate in a team project?
AIt automatically writes your models
BIt helps keep database schema changes synchronized safely
CIt replaces the need for a database
DIt speeds up the Flask server
✗ Incorrect
Flask-Migrate helps teams keep database schema changes synchronized and safe across different environments.
Explain the typical workflow for managing database changes using Flask-Migrate.
Think about the commands you run step-by-step after changing your models.
You got /4 concepts.
Why is it better to use Flask-Migrate instead of manually editing the database schema?
Consider safety and teamwork benefits.
You got /4 concepts.
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
Step 1: Understand Flask-Migrate's role
Flask-Migrate is a tool that helps manage changes to the database structure over time.
Step 2: Identify the correct purpose
It uses migrations to safely update the database schema without losing data.
Final Answer:
To manage database schema changes safely using migrations -> Option C
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
Step 1: Recall the initialization command
The command to set up Flask-Migrate for the first time is flask db init.
Step 2: Check other options
Other commands like flask migrate start or flask db create are incorrect or do not exist.
Final Answer:
flask db init -> Option A
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
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.
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.
Final Answer:
The database schema is updated with the new users table -> Option D
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
Step 1: Understand what triggers migration scripts
flask db migrate creates a script only if it detects changes in the database models.
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.
Final Answer:
No changes detected in the models since last migration -> Option B
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
Step 1: Change the model to reflect the new column name
Modify your SQLAlchemy model to rename the column as desired.
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.
Final Answer:
Update the model's column name, run flask db migrate, then flask db upgrade -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.