我正在使用Symfony 2.0 beta3,我面临一个相当奇怪的问题。我有 按照说明使用sqlite数据库设置ORM 网站,但当我输入:
php app/console doctrine:database:create
然后
php app/console doctrine:schema:create
最后
php app/console doctrine:schema:update --force
我没有收到任何错误(例如最后一个命令输出“数据库 schema更新成功“)但实际上没有插入任何内容 数据库。该表甚至没有创建。数据库文件是 在第一个命令之后生成但仍为空。
由于我已经配置了FOS_UserBundle,我应该有例如a table fos_user ... 当我输入
php app/console doctrine:schema:update --dump-sql
它显示三个SQL请求正在等待...如果我使用执行这三个请求 SQLiteManager,它的工作原理(所以创建了fos_user表) 但是当我想使用:
创建用户时php app / console fos:user:create
我收到“SQLSTATE [HY000]:一般错误:1没有这样的表:fos_user”错误。
为什么在运行前三个时我没有收到一些错误消息 命令?我错过了什么吗?
我使用pdo_pgsql驱动程序面临相同的行为,但SQL除外 转储生成的不符合ANSI标准,因此无法执行 对于postgresql(使用datetime和autoincrement而不是timestamp 和连续)...。
非常感谢任何帮助
答案 0 :(得分:8)
我在Symfony论坛上找到了this solution。
看起来帮助者没有创建sqlite实现正常工作所需的两件事。
首先,在项目的parameters.ini中(调整以适应):
database_path=%kernel.root_dir%/config/MyDatabase.db
其次,在doctrine.dbal部分的config.yml文件中,添加以下内容:
path: %database_path%
然后运行:
php app/console doctrine:database:create
它应该在app / config文件夹中为你生成数据库。
您需要运行:
php app/console doctrine:schema:create
创建架构。重新运行不起作用的代码,它应该可以正常工作。
答案 1 :(得分:0)
FOSUserBundle与symfony master同步开发。
php app/console doctrine:schema:drop --force
)php app/console doctrine:schema:update --force
。