我的网站托管在共享服务器上,因此我无法运行迁移命令,因为我无法访问ssh。 有什么办法可以从开发过程中生成的所有迁移文件中生成一个单独的migration / sql文件,这样我就可以轻松地手动导入/执行了吗?
我正在使用Sytrfony 2框架和Doctrine2
答案 0 :(得分:1)
您可以output the SQL of the migrations在本地计算机上运行,然后从Web控制台(例如phpMyAdmin)执行。
php app/console doctrine:migrations:migrate --write-sql -e prod
" prod
"环境指向数据库,其结构与服务器上的结构同步
在服务器上成功运行已编译的SQL后,只需重新运行相同的命令即可更新您的" local"数据库的版本(没有--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>
但大多数共享托管公司不允许您通过外部连接直接连接到数据库,然后您坚持使用上述提议。