【问题标题】:How to atomatically apply migrations that comes from Yii2 extensions如何自动应用来自 Yii2 扩展的迁移
【发布时间】:2016-03-03 18:21:39
【问题描述】:

我已经使用 composer 使用它的“require”部分安装了 Yii2 dektrium/yii2-user 的扩展。此扩展包含数据库迁移。是否可以使用不是这样的控制台语法从这个扩展应用迁移:

php yii migrate --migrationPath=@dektrium/yii2-user/migrations

但使用如下简单命令自动运行所有迁移:

php yii migrate

是否可以告诉作曲家具体扩展包含它的迁移?

【问题讨论】:

  • yii migrate 仅考虑您在控制台/迁移文件夹中的迁移
  • 我找到了我在下面描述的更好的解决方案。谢谢!

标签: yii2 yii2-extension


【解决方案1】:

如果您想让这个过程自动化,您可以使用composerscripts 属性。有关更多信息,您可以查看https://getcomposer.org/doc/articles/scripts.md。在您的情况下,您可以在composer.json 上通过类似的方式实现您的目标:

{
 // Some codes are here
    "scripts": {
        "post-update-cmd": [
            "php yii migrate --migrationPath=@dektrium/yii2-user/migrations"
        ],
        "post-install-cmd": [
            "php yii migrate --migrationPath=@dektrium/yii2-user/migrations"
        ]
    },
 // Some codes are here
}

我更喜欢将安装或更新后必须运行的所有命令保存在项目根目录中的文件(例如名为 commands 的文件)上,如下所示:

#!/usr/bin/env bash

./yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations
./yii migrate/up
./yii migrate/up --migrationPath=@app/modules/rules/migrations
./yii migrate/up --migrationPath=@app/modules/formsaz/migrations
./yii migrate/up --migrationPath=@app/modules/todo/migrations
./yii formsaz/rules/init
./yii husky/rules/init

并在composer.json 文件上输入其名称:

{
 // Some codes are here
    "scripts": {
        "post-update-cmd": [
            "sh commands"
        ],
        "post-install-cmd": [
            "sh commands"
        ]
    },
 // Some codes are here
}

所以每次在composer installcomposer update 之后,都会运行所有命令(这对团队合作很有用)。

【讨论】:

    【解决方案2】:

    我只找到了一个很好的解决方案——安装 yii2 扩展 https://github.com/dmstr/yii2-migrate-command

    现在我可以轻松使用命令“php yii migrate”,不用担心我团队中的某个人没有应用所需的迁移。

    感谢其他人的帮助!如果您找到更合适的解决方案,请分享 =)

    【讨论】:

      【解决方案3】:

      【讨论】:

      • 如果您不只是发布链接,我会支持您的回答!这就是现在 SO 的工作方式。考虑到链接有时会断开。那你的回答就没用了。
      • @robsch 当链接刹车时,你可以在返航机中找到它-web.archive.org :)
      • How to answer:为链接提供上下文 - 鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及它为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。
      猜你喜欢
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2016-10-13
      • 1970-01-01
      • 1970-01-01
      • 2020-09-19
      • 2014-08-25
      • 1970-01-01
      相关资源
      最近更新 更多