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

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)....

任何帮助将非常感激

lot*_*ime 8

我在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)

创建架构.重新运行不起作用的代码,它应该工作正常.