Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yii2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PSDI Army
yii2
Commits
3aed0825
Commit
3aed0825
authored
Jul 03, 2013
by
Alexander Makarov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed code blocks in migration docs
parent
a2a4c40b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
28 additions
and
31 deletions
+28
-31
migration.md
docs/guide/migration.md
+28
-31
No files found.
docs/guide/migration.md
View file @
3aed0825
...
@@ -28,25 +28,24 @@ Creating Migrations
...
@@ -28,25 +28,24 @@ Creating Migrations
To create a new migration (e.g. create a news table), we run the following command:
To create a new migration (e.g. create a news table), we run the following command:
~~~
```
yii migrate/create <name>
yii migrate/create <name>
~~~
```
The required
`name`
parameter specifies a very brief description of the migration
The required
`name`
parameter specifies a very brief description of the migration
(e.g.
`create_news_table`
). As we will show in the following, the
`name`
parameter
(e.g.
`create_news_table`
). As we will show in the following, the
`name`
parameter
is used as part of a PHP class name. Therefore, it should only contain letters,
is used as part of a PHP class name. Therefore, it should only contain letters,
digits and/or underscore characters.
digits and/or underscore characters.
~~~
```
yii migrate/create create_news_table
yii migrate/create create_news_table
~~~
```
The above command will create under the
`protected/migrations`
directory a new
The above command will create under the
`protected/migrations`
directory a new
file named
`m101129_185401_create_news_table.php`
which contains the following
file named
`m101129_185401_create_news_table.php`
which contains the following
initial code:
initial code:
~~~
```
php
[php]
class
m101129_185401_create_news_table
extends
\yii\db\Migration
class
m101129_185401_create_news_table
extends
\yii\db\Migration
{
{
public
function
up
()
public
function
up
()
...
@@ -59,7 +58,7 @@ class m101129_185401_create_news_table extends \yii\db\Migration
...
@@ -59,7 +58,7 @@ class m101129_185401_create_news_table extends \yii\db\Migration
return
false
;
return
false
;
}
}
}
}
~~~
```
Notice that the class name is the same as the file name which is of the pattern
Notice that the class name is the same as the file name which is of the pattern
`m<timestamp>_<name>`
, where
`<timestamp>`
refers to the UTC timestamp (in the
`m<timestamp>_<name>`
, where
`<timestamp>`
refers to the UTC timestamp (in the
...
@@ -78,8 +77,7 @@ method returns `false` to indicate that the migration cannot be reverted.
...
@@ -78,8 +77,7 @@ method returns `false` to indicate that the migration cannot be reverted.
As an example, let's show the migration about creating a news table.
As an example, let's show the migration about creating a news table.
~~~
```
php
[php]
class
m101129_185401_create_news_table
extends
\yii\db\Migration
class
m101129_185401_create_news_table
extends
\yii\db\Migration
{
{
public
function
up
()
public
function
up
()
...
@@ -96,7 +94,7 @@ class m101129_185401_create_news_table extends \yii\db\Migration
...
@@ -96,7 +94,7 @@ class m101129_185401_create_news_table extends \yii\db\Migration
$this->db->createCommand()->dropTable('
tbl_news
'
)
->
execute
();
$this->db->createCommand()->dropTable('
tbl_news
'
)
->
execute
();
}
}
}
}
~~~
```
The base class
[
\yii\db\Migration
]
exposes a database connection via
`db`
The base class
[
\yii\db\Migration
]
exposes a database connection via
`db`
property. You can use it for manipulating data and schema of a database.
property. You can use it for manipulating data and schema of a database.
...
@@ -112,8 +110,7 @@ DB transactions.
...
@@ -112,8 +110,7 @@ DB transactions.
We could explicitly start a DB transaction and enclose the rest of the DB-related
We could explicitly start a DB transaction and enclose the rest of the DB-related
code within the transaction, like the following:
code within the transaction, like the following:
~~~
```
php
[php]
class
m101129_185401_create_news_table
extends
\yii\db\Migration
class
m101129_185401_create_news_table
extends
\yii\db\Migration
{
{
public
function
up
()
public
function
up
()
...
@@ -138,7 +135,7 @@ class m101129_185401_create_news_table extends \yii\db\Migration
...
@@ -138,7 +135,7 @@ class m101129_185401_create_news_table extends \yii\db\Migration
// ...similar code for down()
// ...similar code for down()
}
}
~~~
```
> Note: Not all DBMS support transactions. And some DB queries cannot be put
> Note: Not all DBMS support transactions. And some DB queries cannot be put
> into a transaction. In this case, you will have to implement `up()` and
> into a transaction. In this case, you will have to implement `up()` and
...
@@ -152,9 +149,9 @@ Applying Migrations
...
@@ -152,9 +149,9 @@ Applying Migrations
To apply all available new migrations (i.e., make the local database up-to-date),
To apply all available new migrations (i.e., make the local database up-to-date),
run the following command:
run the following command:
~~~
```
yii migrate
yii migrate
~~~
```
The command will show the list of all new migrations. If you confirm to apply
The command will show the list of all new migrations. If you confirm to apply
the migrations, it will run the
`up()`
method in every new migration class, one
the migrations, it will run the
`up()`
method in every new migration class, one
...
@@ -169,18 +166,18 @@ application component.
...
@@ -169,18 +166,18 @@ application component.
Sometimes, we may only want to apply one or a few new migrations. We can use the
Sometimes, we may only want to apply one or a few new migrations. We can use the
following command:
following command:
~~~
```
yii migrate/up 3
yii migrate/up 3
~~~
```
This command will apply the 3 new migrations. Changing the value 3 will allow
This command will apply the 3 new migrations. Changing the value 3 will allow
us to change the number of migrations to be applied.
us to change the number of migrations to be applied.
We can also migrate the database to a specific version with the following command:
We can also migrate the database to a specific version with the following command:
~~~
```
yii migrate/to 101129_185401
yii migrate/to 101129_185401
~~~
```
That is, we use the timestamp part of a migration name to specify the version
That is, we use the timestamp part of a migration name to specify the version
that we want to migrate the database to. If there are multiple migrations between
that we want to migrate the database to. If there are multiple migrations between
...
@@ -195,9 +192,9 @@ Reverting Migrations
...
@@ -195,9 +192,9 @@ Reverting Migrations
To revert the last one or several applied migrations, we can use the following
To revert the last one or several applied migrations, we can use the following
command:
command:
~~~
```
yii migrate/down [step]
yii migrate/down [step]
~~~
```
where the optional
`step`
parameter specifies how many migrations to be reverted
where the optional
`step`
parameter specifies how many migrations to be reverted
back. It defaults to 1, meaning reverting back the last applied migration.
back. It defaults to 1, meaning reverting back the last applied migration.
...
@@ -212,9 +209,9 @@ Redoing Migrations
...
@@ -212,9 +209,9 @@ Redoing Migrations
Redoing migrations means first reverting and then applying the specified migrations.
Redoing migrations means first reverting and then applying the specified migrations.
This can be done with the following command:
This can be done with the following command:
~~~
```
yii migrate/redo [step]
yii migrate/redo [step]
~~~
```
where the optional
`step`
parameter specifies how many migrations to be redone.
where the optional
`step`
parameter specifies how many migrations to be redone.
It defaults to 1, meaning redoing the last migration.
It defaults to 1, meaning redoing the last migration.
...
@@ -226,10 +223,10 @@ Showing Migration Information
...
@@ -226,10 +223,10 @@ Showing Migration Information
Besides applying and reverting migrations, the migration tool can also display
Besides applying and reverting migrations, the migration tool can also display
the migration history and the new migrations to be applied.
the migration history and the new migrations to be applied.
~~~
```
yii migrate/history [limit]
yii migrate/history [limit]
yii migrate/new [limit]
yii migrate/new [limit]
~~~
```
where the optional parameter
`limit`
specifies the number of migrations to be
where the optional parameter
`limit`
specifies the number of migrations to be
displayed. If
`limit`
is not specified, all available migrations will be displayed.
displayed. If
`limit`
is not specified, all available migrations will be displayed.
...
@@ -246,9 +243,9 @@ version without actually applying or reverting the relevant migrations. This
...
@@ -246,9 +243,9 @@ version without actually applying or reverting the relevant migrations. This
often happens when developing a new migration. We can use the following command
often happens when developing a new migration. We can use the following command
to achieve this goal.
to achieve this goal.
~~~
```
yii migrate/mark 101129_185401
yii migrate/mark 101129_185401
~~~
```
This command is very similar to
`yii migrate/to`
command, except that it only
This command is very similar to
`yii migrate/to`
command, except that it only
modifies the migration history table to the specified version without applying
modifies the migration history table to the specified version without applying
...
@@ -290,17 +287,17 @@ line:
...
@@ -290,17 +287,17 @@ line:
To specify these options, execute the migrate command using the following format
To specify these options, execute the migrate command using the following format
~~~
```
yii migrate/up --option1=value1 --option2=value2 ...
yii migrate/up --option1=value1 --option2=value2 ...
~~~
```
For example, if we want to migrate for a
`forum`
module whose migration files
For example, if we want to migrate for a
`forum`
module whose migration files
are located within the module's
`migrations`
directory, we can use the following
are located within the module's
`migrations`
directory, we can use the following
command:
command:
~~~
```
yii migrate/up --migrationPath=ext.forum.migrations
yii migrate/up --migrationPath=ext.forum.migrations
~~~
```
### Configure Command Globally
### Configure Command Globally
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment