我的网站托管在共享服务器上,因此我无法运行迁移命令,因为我无权访问 ssh。有什么方法可以从开发过程中生成的所有迁移文件中生成一个迁移/sql 文件,以便我可以轻松地手动导入/执行?
我正在使用带有 Doctrine2 的 Symfony 2 框架
我的网站托管在共享服务器上,因此我无法运行迁移命令,因为我无权访问 ssh。有什么方法可以从开发过程中生成的所有迁移文件中生成一个迁移/sql 文件,以便我可以轻松地手动导入/执行?
我正在使用带有 Doctrine2 的 Symfony 2 框架
您可以输出迁移的 SQL以在本地计算机上运行,然后从 Web 控制台(例如 phpMyAdmin)执行它。
php app/console doctrine:migrations:migrate --write-sql -e prod
" prod
" 环境指向一个数据库,它的结构与你服务器上的结构是同步的。
在服务器上成功运行编译后的 SQL 后,只需重新运行相同的命令即可更新数据库的“本地”版本(不带--write-sql
选项)
php app/console doctrine:migrations:migrate -e prod
这将在不需要 SSH 的情况下更新您的远程数据库,并直接连接到 (My)SQL 服务器。
下一次数据库更改时;重复...
如果可能,只需指向您的“ prod
”环境的生产/远程数据库。
database_host: <your-website-domain>
database_port: 3306 #default
database_name: <your-database-name>
database_user: <your-database-user>
database_password: <your-database-password>
但是大多数共享主机公司不允许你从外部连接直接连接到数据库,那么你就坚持上面提到的提议。