The main method to apply database migrations in Yii is using the built-in migration tool via the command line. 1. Migration files are PHP classes stored in the migrations folder with timestamp-based names, used to modify the database schema. 2. To apply all pending migrations, run yii migrate/up, optionally adding --interactive=0 to skip confirmation or --limit=1 to apply one at a time. 3. To roll back migrations, use yii migrate/down with an optional --limit flag. 4. For a clean reset, use yii migrate/down --limit=999 followed by yii migrate/up --limit=999, though this should be avoided in production. 5. When working with modules or multiple directories, specify a custom path using --migrationPath.
When you're working with Yii and need to apply database migrations, the main method is using Yii's built-in migration tool via the command line. It’s straightforward once you understand how the system organizes and runs migration files.
Understanding Migration Files
Before applying migrations, it helps to know what they are. Migration files in Yii are PHP classes that contain instructions for modifying your database schema—like creating tables, adding columns, or changing indexes.
These files are stored in the migrations
folder of your application or module by default. Each migration file has a timestamp-based name (e.g., m230101_000001_create_table_user.php
) so Yii can determine the correct order when applying them.
If you haven't created any yet, use this command to generate one:
yii migrate/create create_table_something
This gives you a template to fill in with your actual DB changes.
Applying Migrations Step by Step
Once you have your migration files ready, applying them is simple:
- Make sure you're in your project root directory where the
yii
console script is located. - Run this command:
yii migrate/up
Yii will show you a list of pending migrations and ask for confirmation. Type y
and hit Enter to proceed.
You can also skip the confirmation prompt by adding --interactive=0
:
yii migrate/up --interactive=0
By default, it applies all pending migrations. If you only want to apply one at a time, add the --limit=1
flag:
yii migrate/up --limit=1
This comes in handy during testing or when troubleshooting a specific migration.
Rolling Back or Resetting Migrations
Sometimes things go wrong or you need to undo changes. Yii lets you roll back migrations using:
yii migrate/down
Just like applying, you can limit how many steps to roll back:
yii migrate/down --limit=2
Be cautious though—rolling back deletes data if your migration includes dropping tables or columns.
For a clean start (not recommended on production), you can reset all migrations:
yii migrate/down --limit=999
Then reapply them:
yii migrate/up --limit=999
This is useful during development or when setting up a new environment from scratch.
Managing Multiple Migration Paths
If your app uses modules or multiple migration directories, you can specify which path to use:
yii migrate/up --migrationPath=@app/modules/user/migrations
This tells Yii to look in a custom location instead of the default @app/migrations
.
It’s helpful when maintaining separate databases per module or managing shared components across projects.
That's basically how you handle migrations in Yii. It's not complicated once you get used to the commands and structure, but it's powerful enough for most real-world scenarios.
The above is the detailed content of How do I apply migrations in Yii?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

YiiassetbundlesorganizeandmanagewebassetslikeCSS,JavaScript,andimagesinaYiiapplication.1.Theysimplifydependencymanagement,ensuringcorrectloadorder.2.Theypreventduplicateassetinclusion.3.Theyenableenvironment-specifichandlingsuchasminification.4.Theyp

In the MVC framework, the mechanism for the controller to render views is based on the naming convention and allows explicit overwriting. If redirection is not explicitly indicated, the controller will automatically find a view file with the same name as the action for rendering. 1. Make sure that the view file exists and is named correctly. For example, the view path corresponding to the action show of the controller PostsController should be views/posts/show.html.erb or Views/Posts/Show.cshtml; 2. Use explicit rendering to specify different templates, such as render'custom_template' in Rails and view('posts.custom_template') in Laravel

When saving data to the database in the Yii framework, it is mainly implemented through the ActiveRecord model. 1. Creating a new record requires instantiation of the model, loading the data and verifying it before saving; 2. Updating the record requires querying the existing data before assignment; 3. When using the load() method for batch assignment, security attributes must be marked in rules(); 4. When saving associated data, transactions should be used to ensure consistency. The specific steps include: instantiating the model and filling the data with load(), calling validate() verification, and finally performing save() persistence; when updating, first obtaining records and then assigning values; when sensitive fields are involved, massassignment should be restricted; when saving the associated model, beginTran should be combined

TocreateabasicrouteinYii,firstsetupacontrollerbyplacingitinthecontrollersdirectorywithpropernamingandclassdefinitionextendingyii\web\Controller.1)Createanactionwithinthecontrollerbydefiningapublicmethodstartingwith"action".2)ConfigureURLstr

The method of creating custom operations in Yii is to define a common method starting with an action in the controller, optionally accept parameters; then process data, render views, or return JSON as needed; and finally ensure security through access control. The specific steps include: 1. Create a method prefixed with action; 2. Set the method to public; 3. Can receive URL parameters; 4. Process data such as querying the model, processing POST requests, redirecting, etc.; 5. Use AccessControl or manually checking permissions to restrict access. For example, actionProfile($id) can be accessed via /site/profile?id=123 and renders the user profile page. The best practice is

AYiidevelopercraftswebapplicationsusingtheYiiframework,requiringskillsinPHP,Yii-specificknowledge,andwebdevelopmentlifecyclemanagement.Keyresponsibilitiesinclude:1)Writingefficientcodetooptimizeperformance,2)Prioritizingsecuritytoprotectapplications,

AYiideveloper'skeyresponsibilitiesincludedesigningandimplementingfeatures,ensuringapplicationsecurity,andoptimizingperformance.QualificationsneededareastronggraspofPHP,experiencewithfront-endtechnologies,databasemanagementskills,andproblem-solvingabi

TouseActiveRecordinYiieffectively,youcreateamodelclassforeachtableandinteractwiththedatabaseusingobject-orientedmethods.First,defineamodelclassextendingyii\db\ActiveRecordandspecifythecorrespondingtablenameviatableName().Youcangeneratemodelsautomatic
