【问题标题】:Can't manage to put data into my database无法将数据放入我的数据库
【发布时间】:2011-09-08 16:00:03
【问题描述】:

我正在使用 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

我没有收到任何错误(例如最后一条命令输出“数据库 模式更新成功”)但实际上没有插入任何内容 数据库。该表甚至没有创建。数据库文件是 在第一个命令之后生成但保持为空。

因为我已经配置了 FOS_UserBundle 我应该有一个例如 表 fos_user… 当我输入时

 php app/console doctrine:schema:update --dump-sql

这表明三个 SQL 请求正在等待中......如果我执行这三个请求使用 SQLiteManager,它可以工作(所以创建了 fos_user 表) 但是当我想使用以下方式创建用户时:

php 应用程序/控制台 fos:user:create

我得到一个“SQLSTATE[HY000]: General error: 1 no such table: fos_user”错误。

为什么我运行前三个时没有给出一些错误消息 命令?我错过了什么吗?

我使用 pdo_pgsql 驱动程序遇到了同样的行为,除了 SQL 转储生成的不符合 ANSI 标准,因此无法执行 对于 postgresql(使用日期时间和自动增量而不是时间戳 和连续)...。

任何帮助将不胜感激

【问题讨论】:

    标签: sqlite postgresql orm symfony


    【解决方案1】:

    FOSUserBundle 与 symfony master 同步开发。

    1. 确保同时更新 symfony 和 FOSUserBundle。
    2. 删除架构 (php app/console doctrine:schema:drop --force)
    3. 手动检查数据库是否删除了模式。否则手动操作。
    4. 清除缓存并确保它是可写的。
    5. 再次运行php app/console doctrine:schema:update --force

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • path: %database_path% 这正是我所需要的!顺便说一句,schema:create 命令会自动创建数据库,因此您无需调用databse:create
      猜你喜欢
      • 1970-01-01
      • 2013-03-02
      • 1970-01-01
      • 2013-01-17
      • 1970-01-01
      • 2012-08-05
      • 2019-01-07
      • 2015-08-15
      • 2021-06-05
      相关资源
      最近更新 更多