我的网站托管在共享服务器上,所以我无法运行迁移命令,因为我无法访问ssh。有没有什么方法可以从开发过程中生成的所有迁移文件中生成一个迁移/sql文件,这样我就可以轻松地手动导入/执行?
我正在使用带有Doctrine2的Symfony 2框架
输出SQL并手动执行
您可以输出迁移的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的情况下更新远程数据库,并直接连接到(我的)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>
但大多数共享托管公司都不允许你通过外部连接直接连接到数据库,那么你就只能坚持上面提到的主张。