无法管理将数据放入我的数据库

时间:2011-06-05 08:33:13

标签: sqlite postgresql orm symfony

我正在使用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 和连续)...。

非常感谢任何帮助

2 个答案:

答案 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同步开发。

  1. 请务必同时更新symfony和FOSUserBundle。
  2. 删除架构(php app/console doctrine:schema:drop --force
  3. 手动检查db是否删除了架构。否则每手都做。
  4. 清除缓存并确保其可写。
  5. 再次运行php app/console doctrine:schema:update --force