Abstract Class yii\console\controllers\BaseMigrateController
BaseMigrateController 是迁移控制器的基类。
公共属性
属性 | 类型 | 描述 | 被定义在 |
---|---|---|---|
$action | yii\base\Action | The action that is currently being executed. | yii\base\Controller |
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component | yii\base\Component |
$color | boolean | 是否在输出中启用 ANSI 颜色。 如果未设置,则仅为支持 ANSI 颜色的终端启用 ANSI 颜色。 | yii\console\Controller |
$compact | boolean | 指示是否应该压缩控制台输出。 如果设置为 true,则迁移中运行的各个命令将不会输出到控制台。 默认为 false,换句话说输出是完全详细的。 | yii\console\controllers\BaseMigrateController |
$defaultAction | string | 默认的命令操作。 | yii\console\controllers\BaseMigrateController |
$help | boolean | 是否显示有关当前命令的帮助信息。 | yii\console\Controller |
$helpSummary | string | yii\console\Controller | |
$id | string | The ID of this controller. | yii\base\Controller |
$interactive | boolean | 是否以交互方式运行命令。 | yii\console\Controller |
$layout | null|string|false | The name of the layout to be applied to this controller's views. | yii\base\Controller |
$migrationNamespaces | array | 包含迁移类的命名空间列表。
如果前缀为 @ 迁移命名空间应该可解析为 path alias,例如如果你指定
命名空间 app\migrations ,代码 Yii::getAlias('@app/migrations') 应该能够返回
此命名空间引用的目录的文件路径。
这与Yii的 autoloading conventions 相适应。
例如:
` php
[
'app\migrations',
'some\extension\migrations',
]
` |
yii\console\controllers\BaseMigrateController |
$migrationPath | string|array | 包含迁移类的目录。这可以是
一个 path alias 或一个目录路径。
位于此路径的迁移类应该在没有命名空间的情况下声明。
使用 $migrationNamespaces 属性以防你使用命名空间迁移。
如果你已经设置了 $migrationNamespaces,你可以按顺序将此字段设置为 null
禁用未命名空间的迁移的使用。
从版本 2. |
yii\console\controllers\BaseMigrateController |
$module | yii\base\Module | The module that this controller belongs to. | yii\base\Controller |
$modules | yii\base\Module[] | All ancestor modules that this controller is located within. | yii\base\Controller |
$passedOptionValues | array | 与传递的选项对应的属性 | yii\console\Controller |
$passedOptions | array | 执行期间传递的选项的名称 | yii\console\Controller |
$route | string | The route (module ID, controller ID and action ID) of the current request. | yii\base\Controller |
$templateFile | string | 用于生成新迁移的模板文件。 这可以是一个 path alias(例如 "@app/migrations/template. | yii\console\controllers\BaseMigrateController |
$uniqueId | string | The controller ID that is prefixed with the module ID (if any). | yii\base\Controller |
$view | yii\base\View|yii\web\View | The view object that can be used to render views or view files. | yii\base\Controller |
$viewPath | string | 可以为相对视图名称添加前缀的视图路径。 | yii\base\ViewContextInterface |
公共方法
方法 | 描述 | 被定义在 |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\Component |
__clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component |
__construct() | yii\base\Controller | |
__get() | Returns the value of a component property. | yii\base\Component |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component |
__set() | Sets the value of a component property. | yii\base\Component |
__unset() | Sets a component property to be null. | yii\base\Component |
actionCreate() | 创建新的迁移。 | yii\console\controllers\BaseMigrateController |
actionDown() | 通过恢复旧迁移来降级应用程序。 | yii\console\controllers\BaseMigrateController |
actionFresh() | 截断整个数据库并从头开始迁移。 | yii\console\controllers\BaseMigrateController |
actionHistory() | 显示迁移历史记录。 | yii\console\controllers\BaseMigrateController |
actionMark() | 将迁移历史记录修改为指定的版本。 | yii\console\controllers\BaseMigrateController |
actionNew() | 显示未应用的新迁移。 | yii\console\controllers\BaseMigrateController |
actionRedo() | 重做最后几次迁移。 | yii\console\controllers\BaseMigrateController |
actionTo() | 升级或降级至指定版本。 | yii\console\controllers\BaseMigrateController |
actionUp() | 通过应用新迁移来升级应用程序。 | yii\console\controllers\BaseMigrateController |
actions() | Declares external actions for the controller. | yii\base\Controller |
afterAction() | This method is invoked right after an action is executed. | yii\base\Controller |
ansiFormat() | 使用 ANSI 代码格式化字符串。 | yii\console\Controller |
attachBehavior() | Attaches a behavior to this component. | yii\base\Component |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component |
beforeAction() | 在执行动作之前调用此方法(在所有可能的过滤器之后。) 它检查 $migrationPath 的存在。 | yii\console\controllers\BaseMigrateController |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component |
bindActionParams() | 将参数绑定到动作。 当 yii\base\Action 开始使用给定的参数运行时,此方法被调用。 此方法首先将参数与操作可用的 options绑定。 然后验证给定的参数。 | yii\console\Controller |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component |
className() | Returns the fully qualified name of this class. | yii\base\BaseObject |
confirm() | 要求用户通过键入 y 或 n 来确认。 | yii\console\Controller |
createAction() | Creates an action based on the given action ID. | yii\base\Controller |
detachBehavior() | Detaches a behavior from the component. | yii\base\Component |
detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component |
findLayoutFile() | Finds the applicable layout file. | yii\base\Controller |
getActionArgsHelp() | 返回动作的匿名参数的帮助信息。 | yii\console\Controller |
getActionHelp() | 返回指定动作的详细帮助信息。 | yii\console\Controller |
getActionHelpSummary() | 返回描述指定动作的一行简短摘要。 | yii\console\Controller |
getActionOptionsHelp() | 返回动作选项的帮助信息。 | yii\console\Controller |
getBehavior() | Returns the named behavior object. | yii\base\Component |
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
getHelp() | 返回此控制器的帮助信息。 | yii\console\Controller |
getHelpSummary() | 返回描述此控制器的一行简短摘要。 | yii\console\Controller |
getModules() | Returns all ancestor modules of this controller. | yii\base\Controller |
getOptionValues() | 返回与动作 ID 的选项对应的属性 子类可以重写此方法以指定可能的属性。 | yii\console\Controller |
getPassedOptionValues() | 返回与传递的选项对应的属性。 | yii\console\Controller |
getPassedOptions() | 返回执行期间传递的有效选项的名称。 | yii\console\Controller |
getRoute() | Returns the route of the current request. | yii\base\Controller |
getUniqueId() | Returns the unique ID of the controller. | yii\base\Controller |
getView() | Returns the view object that can be used to render views or view files. | yii\base\Controller |
getViewPath() | yii\base\ViewContextInterface | |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component |
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component |
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component |
init() | Initializes the object. | yii\base\BaseObject |
isColorEnabled() | 返回一个指示是否启用 ANSI 颜色的值。 | yii\console\Controller |
off() | Detaches an existing event handler from this component. | yii\base\Component |
on() | Attaches an event handler to an event. | yii\base\Component |
optionAliases() | 返回选项别名。 子类可以重写此方法以指定别名选项。 | yii\console\Controller |
options() | 返回操作的有效选项的动作(id) 选项要求存在一个名为选项名的 公共成员变量。 子类可以重写此方法以指定可能的选项。 | yii\console\controllers\BaseMigrateController |
prompt() | 提示用户输入并验证它。 | yii\console\Controller |
render() | Renders a view and applies layout if available. | yii\base\Controller |
renderContent() | Renders a static string by applying a layout. | yii\base\Controller |
renderFile() | Renders a view file. | yii\base\Controller |
renderPartial() | Renders a view without applying layout. | yii\base\Controller |
run() | Runs a request specified in terms of a route. | yii\base\Controller |
runAction() | 使用指定的动作 ID 和参数运行动作。 如果动作 ID 为空,则该方法将使用 $defaultAction。 | yii\console\Controller |
select() | 为用户提供可供选择的选项。给予 '?' 作为输入将显示 可供选择的选项列表及其解释。 | yii\console\Controller |
setView() | Sets the view object to be used by this controller. | yii\base\Controller |
setViewPath() | Sets the directory that contains the view files. | yii\base\Controller |
stderr() | 将字符串打印到 STDERR。 | yii\console\Controller |
stdout() | 将字符串打印到 STDOUT。 | yii\console\Controller |
trigger() | Triggers an event. | yii\base\Component |
受保护的方法
Events
事件 | 类型 | 描述 | 被定义在 |
---|---|---|---|
EVENT_AFTER_ACTION | yii\base\ActionEvent | An event raised right after executing a controller action. | yii\base\Controller |
EVENT_BEFORE_ACTION | yii\base\ActionEvent | An event raised right before executing a controller action. | yii\base\Controller |
常量
常量 | 值 | 描述 | 被定义在 |
---|---|---|---|
BASE_MIGRATION | 'm000000_000000_base' | 虚拟迁移的名称,标记整个迁移历史记录的开头。 | yii\console\controllers\BaseMigrateController |
EXIT_CODE_ERROR | 1 | Deprecated 自 2.0.13。使用 yii\console\ExitCode::UNSPECIFIED_ERROR 替代。 | yii\console\Controller |
EXIT_CODE_NORMAL | 0 | Deprecated 自 2.0.13。使用 yii\console\ExitCode::OK 替代。 | yii\console\Controller |
属性详情
指示是否应该压缩控制台输出。 如果设置为 true,则迁移中运行的各个命令将不会输出到控制台。 默认为 false,换句话说输出是完全详细的。
默认的命令操作。
包含迁移类的命名空间列表。
如果前缀为 @
迁移命名空间应该可解析为 path alias,例如如果你指定
命名空间 app\migrations
,代码 Yii::getAlias('@app/migrations')
应该能够返回
此命名空间引用的目录的文件路径。
这与Yii的 autoloading conventions 相适应。
例如:
[
'app\migrations',
'some\extension\migrations',
]
参见 $migrationPath.
包含迁移类的目录。这可以是 一个 path alias 或一个目录路径。
位于此路径的迁移类应该在没有命名空间的情况下声明。 使用 $migrationNamespaces 属性以防你使用命名空间迁移。
如果你已经设置了 $migrationNamespaces,你可以按顺序将此字段设置为 null
禁用未命名空间的迁移的使用。
从版本 2.0.12 开始您还可以指定应该搜索的迁移路径数组 以加载迁移。这主要用于支持在没有命名空间的情况下 提供迁移的旧扩展,并在保留现有迁移的同时采用命名空间迁移的新功能。
通常,要从不同位置加载迁移,$migrationNamespaces 是首选解决方案 因为迁移名称包含历史记录中迁移的来源,而使用多个迁移路径时 则不是这种情况。
用于生成新迁移的模板文件。 这可以是一个 path alias(例如 "@app/migrations/template.php") 或文件路径。
方法详情
创建新的迁移。
此命令使用可用的迁移模板创建新迁移。 使用此命令后,开发人员应通过填充实际的迁移逻辑 来修改创建的迁移框架。
yii migrate/create create_user_table
为了生成命名空间迁移,您应该在迁移名称之前指定命名空间。
请注意反斜杠(\
)通常被认为是 shell 中的特殊字符,因此您需要将其转义
正确避免 shell 错误或不正确的行为。
例如:
yii migrate/create 'app\\migrations\\createUserTable'
如果未设置 $migrationPath 且未提供命名空间,则将使用 $migrationNamespaces的第一个条目。
public void actionCreate($name) | ||
$name | string | 新迁移的名称。这应该只包含 字母,数字,下划线和/或反斜杠。 注意:如果迁移名称是特殊形式,例如 create_xxx 或 drop_xxx, 然后生成的迁移文件将包含额外的代码, 在这种情况下用于创建/删除表。 |
throws | yii\console\Exception | 如果 name 参数无效。 |
---|
通过恢复旧迁移来降级应用程序。
例如,
yii migrate/down # 恢复上次迁移
yii migrate/down 3 # 恢复最后 3 次迁移
yii migrate/down all # 恢复所有迁移
public integer actionDown($limit = 1) | ||
$limit | integer|string | 要还原的迁移次数。默认为 1, 表示将恢复上次应用的迁移。当值为 “all” 时,将还原所有迁移。 |
return | integer | 动作执行的状态。0 表示正常,其他值表示异常。 |
---|---|---|
throws | yii\console\Exception | 如果指定的步数小于 1。 |
截断整个数据库并从头开始迁移。
yii migrate/fresh
public void actionFresh() |
显示迁移历史记录。
此命令将显示已应用的迁移列表到目前为止。 例如,
yii migrate/history # 显示最近 10 次迁移
yii migrate/history 5 # 显示最近 5 次迁移
yii migrate/history all # 显示整个历史记录
public void actionHistory($limit = 10) | ||
$limit | integer|string | 要显示的最大迁移数。 如果是 "all",将显示整个迁移历史记录。 |
throws | yii\console\Exception | 如果传递了无效限制值。 |
---|
将迁移历史记录修改为指定的版本。
不会进行实际迁移。
yii migrate/mark 101129_185401 # 使用时间戳
yii migrate/mark m101129_185401_create_user_table # 使用全名
yii migrate/mark app\migrations\M101129185401CreateUser # 使用命名空间全名
yii migrate/mark m000000_000000_base # 重置完整的迁移历史记录
public integer actionMark($version) | ||
$version | string | 应标记迁移历史记录的版本。
这可以是时间戳或迁移的全名。
你可以指定名称 |
return | integer | CLI 退出码 |
---|---|---|
throws | yii\console\Exception | 如果版本参数无效或无法找到版本。 |
显示未应用的新迁移。
此命令将显示尚未应用的新迁移。 例如,
yii migrate/new # 显示前 10 次新迁移
yii migrate/new 5 # 显示前 5 次新迁移
yii migrate/new all # 显示所有新迁移
public void actionNew($limit = 10) | ||
$limit | integer|string | 要显示的最大新迁移数。
如果是 |
throws | yii\console\Exception | 如果传递了无效限制值。 |
---|
重做最后几次迁移。
此命令将首先还原指定的迁移, 然后再次应用 他们。比如,
yii migrate/redo # 重做上次应用的迁移
yii migrate/redo 3 # 重做最后 3 次应用的迁移
yii migrate/redo all # 重做所有迁移
public integer actionRedo($limit = 1) | ||
$limit | integer|string | 要重做的迁移次数。默认为 1, 表示最后一次应用的迁移将重做。当等于 "all" 时,将重做所有迁移。 |
return | integer | 动作执行的状态。0 表示正常,其他值表示异常。 |
---|---|---|
throws | yii\console\Exception | 如果指定的步数小于 1。 |
升级或降级至指定版本。
也可以将版本降级到过去的某个应用时间,通过提供 一个 UNIX 时间戳或者一个 strtotime() 函数可解析的字符串。这意味着 在指定的特定时间之后应用的所有版本都将被还原。
此命令将首先还原指定的迁移,然后再次应用他们。 比如,
yii migrate/to 101129_185401 # 使用时间戳
yii migrate/to m101129_185401_create_user_table # 使用全名
yii migrate/to 1392853618 # 使用 UNIX 时间戳
yii migrate/to "2014-02-15 13:00:50" # 使用 strtotime() 可解析的字符串
yii migrate/to app\migrations\M101129185401CreateUser # 使用完整的命名空间名称
public void actionTo($version) | ||
$version | string | 应用将迁移到的 过去的版本名称或特定的时间值。这可以是时间戳, 迁移的全名,UNIX 时间戳或,或可解析的时间日期 字符串。 |
throws | yii\console\Exception | 如果 version 参数无效。 |
---|
通过应用新迁移来升级应用程序。
例如,
yii migrate # apply all new migrations
yii migrate 3 # apply the first 3 new migrations
public integer actionUp($limit = 0) | ||
$limit | integer | 要应用的新迁移数。如果是 0, 意味着应用所有可用的新迁移。 |
return | integer | 动作执行的状态。0 表示正常,其他值表示异常。 |
---|
将新迁移条目添加到历史记录中。
protected abstract void addMigrationHistory($version) | ||
$version | string | 迁移版本名称。 |
在执行动作之前调用此方法(在所有可能的过滤器之后。) 它检查 $migrationPath 的存在。
public boolean beforeAction($action) | ||
$action | yii\base\Action | 要执行的动作。 |
return | boolean | 是否应该继续执行该动作。 |
---|---|---|
throws | yii\base\InvalidConfigException | 如果在 migrationPath 中指定的目录不存在并且动作不是 "create"。 |
创建新的迁移实例。
protected yii\db\MigrationInterface createMigration($class) | ||
$class | string | 迁移类名 |
return | yii\db\MigrationInterface | 迁移实例 |
---|
生成新的迁移源 PHP 代码。 子类可以重写此方法,为进程添加额外的逻辑或变动。
protected string generateMigrationSourceCode($params) | ||
$params | array | 生成参数,通常存在以下参数:
|
return | string | 生成的 PHP 代码。 |
---|
返回迁移历史记录。
protected abstract array getMigrationHistory($limit) | ||
$limit | integer | 要返回的历史记录中的最大记录数。 |
return | array | 迁移历史记录 |
---|
返回迁移的最大名称长度。
子类可以重写此方法以定义限制。
protected integer|null getMigrationNameLimit() | ||
return | integer|null | 迁移的最大名称长度,如果没有限制则为 |
---|
返回未应用的迁移。
protected array getNewMigrations() | ||
return | array | 新迁移列表 |
---|
包括给定迁移类名称的迁移文件。
此函数对命名空间迁移不做任何操作,哪些由 自动加载加载。它将包含迁移文件,通过在 $migrationPath 中搜索没有命名空间的类。
protected void includeMigrationFile($class) | ||
$class | string | 迁移类名。 |
使用指定的迁移类降级。
protected boolean migrateDown($class) | ||
$class | string | 迁移类名 |
return | boolean | 迁移是否成功 |
---|
迁移到过去指定的应用时间。
protected void migrateToTime($time) | ||
$time | integer | UNIX 时间戳值。 |
迁移到特定版本。
protected integer migrateToVersion($version) | ||
$version | string | 名称的完整格式。 |
return | integer | CLI 退出码 |
---|---|---|
throws | yii\console\Exception | 如果找不到提供的版本。 |
使用指定的迁移类进行升级。
protected boolean migrateUp($class) | ||
$class | string | 迁移类名。 |
return | boolean | 迁移是否成功。 |
---|
返回操作的有效选项的动作(id) 选项要求存在一个名为选项名的 公共成员变量。 子类可以重写此方法以指定可能的选项。
请注意,通过选项设置的值不可用 直到调用 beforeAction()。
public string[] options($actionID) | ||
$actionID | string | 当前请求的动作 id |
return | string[] | 对操作有效的选项名称 |
---|
从历史记录中删除现有迁移。
protected abstract void removeMigrationHistory($version) | ||
$version | string | 迁移版本名称。 |
截断数据库。 应在子类中覆盖此方法以实现清除数据库的任务。
protected void truncateDatabase() | ||
throws | yii\base\NotSupportedException | 如果没有被覆盖 |
---|