// 开发环境 / 测试环境
php /sobey/www/pcs-api/init --env=Development --overwrite=All
// 演示环境 / 生产环境
php /sobey/www/pcs-api/init --env=Production --overwrite=All
// 数据库迁移(日志的数据库模式,仅在第一次安装时运行)
php /sobey/www/pcs-api/yii migrate --migrationPath=@yii/log/migrations/ --interactive=0
// 数据库迁移(MySQL 5.7.7 之前的版本:innodb_large_prefix=1、innodb_file_format=BARRACUDA)
php /sobey/www/pcs-api/yii migrate --interactive=0
#!/bin/bash
env | grep PCS_API_CFG_ENV || export PCS_API_CFG_ENV="dev"
if [[ $PCS_API_CFG_ENV == "dev" ]]
then
php /sobey/www/pcs-api/init --env=Development --overwrite=All
elif [[ $PCS_API_CFG_ENV == "prod" ]]
then
php /sobey/www/pcs-api/init --env=Production --overwrite=All
else
echo "please set environment variable PCS_API_CFG_ENV dev or prod"
fi
env | grep PCS_API_CFG_MIGRATE || export PCS_API_CFG_MIGRATE="false"
if [[ $PCS_API_CFG_MIGRATE == "true" ]]
then
php /sobey/www/pcs-api/yii migrate --migrationPath=@yii/log/migrations/ --interactive=0
php /sobey/www/pcs-api/yii migrate --interactive=0
elif [[ $PCS_API_CFG_MIGRATE == "false" ]]
then
echo "running without db migrate"
else
echo "please set environment variable PCS_API_CFG_MIGRATE true or false"
fi












PCS_API_CFG_ENV=dev # 环境,dev:开发环境 / 测试环境;prod:演示环境 / 生产环境,默认:dev
PCS_API_CFG_MIGRATE=false # 数据库迁移是否执行(单机部署时,需设置为 true;集群部署时,仅需一台机器设置为 true,其他机器需设置为 false),true:是;false:否,默认:false
![在另一个项目中,在 Rancher 中升级容器时,自动执行数据库迁移命令报错:Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known'](https://media.shuijingwanwq.com/2019/01/13.png)
2019/1/22 下午3:49:43CHANNEL_PUB_API_CFG_MIGRATE=true
2019/1/22 下午3:49:43Yii Migration Tool (based on Yii v2.0.15.1)
2019/1/22 下午3:49:43
2019/1/22 下午3:49:43Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known'
2019/1/22 下午3:49:43
2019/1/22 下午3:49:43in /sobey/www/channel-pub-api/vendor/yiisoft/yii2/db/Connection.php:624
2019/1/22 下午3:49:43
2019/1/22 下午3:49:43Stack trace:
2019/1/22 下午3:49:43#0 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/db/Connection.php(996): yii\db\Connection->open()
2019/1/22 下午3:49:43#1 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/db/Connection.php(983): yii\db\Connection->getMasterPdo()
2019/1/22 下午3:49:43#2 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/db/Command.php(253): yii\db\Connection->getSlavePdo()
2019/1/22 下午3:49:43#3 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/db/Command.php(1143): yii\db\Command->prepare(true)
2019/1/22 下午3:49:43#4 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/db/Command.php(399): yii\db\Command->queryInternal('fetchAll', NULL)
2019/1/22 下午3:49:43#5 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/db/mysql/Schema.php(312): yii\db\Command->queryAll()
2019/1/22 下午3:49:43#6 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/db/mysql/Schema.php(125): yii\db\mysql\Schema->findColumns(Object(yii\db\TableSchema))
2019/1/22 下午3:49:43#7 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/db/Schema.php(744): yii\db\mysql\Schema->loadTableSchema('CHANNEL_PUB_API...')
2019/1/22 下午3:49:43#8 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/db/Schema.php(194): yii\db\Schema->getTableMetadata('{{%migration}}', 'schema', true)
2019/1/22 下午3:49:43#9 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/console/controllers/MigrateController.php(210): yii\db\Schema->getTableSchema('{{%migration}}', true)
2019/1/22 下午3:49:43#10 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(875): yii\console\controllers\MigrateController->getMigrationHistory(NULL)
2019/1/22 下午3:49:43#11 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(166): yii\console\controllers\BaseMigrateController->getNewMigrations()
2019/1/22 下午3:49:43#12 [internal function]: yii\console\controllers\BaseMigrateController->actionUp(0)
2019/1/22 下午3:49:43#13 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
2019/1/22 下午3:49:43#14 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array)
2019/1/22 下午3:49:43#15 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/console/Controller.php(148): yii\base\Controller->runAction('', Array)
2019/1/22 下午3:49:43#16 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/base/Module.php(528): yii\console\Controller->runAction('', Array)
2019/1/22 下午3:49:43#17 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('migrate', Array)
2019/1/22 下午3:49:43#18 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/console/Application.php(147): yii\console\Application->runAction('migrate', Array)
2019/1/22 下午3:49:43#19 /sobey/www/channel-pub-api/vendor/yiisoft/yii2/base/Application.php(386): yii\console\Application->handleRequest(Object(yii\console\Request))
2019/1/22 下午3:49:43#20 /sobey/www/channel-pub-api/yii(23): yii\base\Application->run()
2019/1/22 下午3:49:43#21 {main}
#!/bin/bash
env | grep CHANNEL_PUB_API_CFG_ENV || export CHANNEL_PUB_API_CFG_ENV="dev"
if [[ $CHANNEL_PUB_API_CFG_ENV == "dev" ]]
then
php /sobey/www/channel-pub-api/init --env=Development --overwrite=All
elif [[ $CHANNEL_PUB_API_CFG_ENV == "prod" ]]
then
php /sobey/www/channel-pub-api/init --env=Production --overwrite=All
else
echo "please set environment variable CHANNEL_PUB_API_CFG_ENV dev or prod"
fi
env | grep CHANNEL_PUB_API_CFG_MIGRATE || export CHANNEL_PUB_API_CFG_MIGRATE="false"
if [[ $CHANNEL_PUB_API_CFG_MIGRATE == "true" ]]
then
php /sobey/www/channel-pub-api/yii migrate --migrationPath=@yii/log/migrations/ --interactive=0
php /sobey/www/channel-pub-api/yii migrate --interactive=0
php /sobey/www/channel-pub-api/yii qq-tp-app/init-sync
php /sobey/www/channel-pub-api/yii qq-cw-app/init-sync
php /sobey/www/channel-pub-api/yii weibo-weibo-connect-web-app/init-sync
elif [[ $CHANNEL_PUB_API_CFG_MIGRATE == "false" ]]
then
echo "running without db migrate"
else
echo "please set environment variable CHANNEL_PUB_API_CFG_MIGRATE true or false"
fi




PHP / Laravel / Yii2 老项目维护与长期技术支持
如果你的 PHP / Laravel / Yii2 项目已经上线,但遇到原开发离职、Bug 长期无人修复、接口不稳定、性能下降、代码难以接手等问题,可以联系我做一次远程技术排查。
适合以下情况:
✅ 老旧 PHP 系统无人维护
✅ Laravel / Yii2 项目 Bug 修复
✅ 后台管理系统小功能迭代
✅ RESTful API 接口排查
✅ MySQL / Redis / Nginx 性能问题
✅ 长期远程兼职维护
可先从一次小问题开始:
✅ 线上报错排查
✅ 接口异常分析
✅ 慢查询与性能瓶颈定位
✅ 代码结构初步评估
✅ 部署环境与日志检查
如需咨询,请联系我,并注明:PHP 维护咨询。
联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com

发表回复