Nic*_*ser 5 sqlite postgresql orm symfony
我正在使用Symfony 2.0 beta3,我面临一个相当奇怪的问题.我按照网站的说明设置了一个带有sqlite数据库的ORM,但是当我输入时:
php app/console doctrine:database:create
Run Code Online (Sandbox Code Playgroud)
然后
php app/console doctrine:schema:create
Run Code Online (Sandbox Code Playgroud)
最后
php app/console doctrine:schema:update --force
Run Code Online (Sandbox Code Playgroud)
我没有收到任何错误(例如最后一个命令输出"数据库模式已成功更新")但实际上没有任何内容插入数据库.该表甚至没有创建.数据库文件在第一个命令之后生成,但仍为空.
因为我已经配置了FOS_UserBundle,所以我应该有一个表fos_user ...当我输入时
php app/console doctrine:schema:update --dump-sql
Run Code Online (Sandbox Code Playgroud)
它显示三个SQL请求正在等待...如果我使用SQLiteManager执行这三个请求,它可以工作(所以创建了fos_user表)但是当我想创建用户时使用:
php app/console fos:user:create
我得到一个"SQLSTATE [HY000]:一般错误:1没有这样的表:fos_user"错误.
为什么在运行前三个命令时没有给出一些错误消息?我错过了什么吗?
我使用pdo_pgsql驱动程序面临相同的行为,除了转储生成的SQL不符合ANSI标准,因此无法为postgresql执行(使用datetime和autoincrement而不是timestamp和serial)....
任何帮助将非常感激
我在Symfony论坛上找到了这个解决方案.
似乎帮助者没有创建sqlite实现正常工作所需的两件事.
首先,在项目的parameters.ini中(调整到适合):
database_path=%kernel.root_dir%/config/MyDatabase.db
Run Code Online (Sandbox Code Playgroud)
其次,在doctrine.dbal部分的config.yml文件中,添加以下内容:
path: %database_path%
Run Code Online (Sandbox Code Playgroud)
然后运行:
php app/console doctrine:database:create
Run Code Online (Sandbox Code Playgroud)
它应该在app/config文件夹中为您生成数据库.
你需要运行:
php app/console doctrine:schema:create
Run Code Online (Sandbox Code Playgroud)
创建架构.重新运行不起作用的代码,它应该工作正常.
| 归档时间: |
|
| 查看次数: |
2831 次 |
| 最近记录: |