【问题标题】:rake db:migrate fails when trying to do insertsrake db:migrate 在尝试插入时失败
【发布时间】:2011-02-16 10:51:00
【问题描述】:

我正在尝试填充一个数据库,以便我可以开始处理一个项目。这个项目已经建成,我被请来帮助前端工作。问题是我无法让rake db:migrate 进行任何插入。每次我运行rake db:migrate 我都会得到这个:

== 20081220084043 CreateTimeDimension: migrating ==============================
-- create_table(:time_dimension)
   -> 0.0870s
INSERT time_dimension(time_key, `year`, `month`, `day`, day_of_week, weekend, quarter) VALUES(20080101, 2008, 1, 1, 'Tuesday', false, 1)
rake aborted!
Could not load driver (uninitialized constant Mysql::Driver)

我正在使用 Snow Leopard 构建 MBP。我已经从 mac自带的磁盘。我已经更新了 ruby​​,安装了 rails 和 所有需要的宝石。我已经安装了 64 位版本的 MySQL。

我尝试过 32 位版本的 MySQL,我什至尝试过 installing from macports

mysql gem 安装使用:sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/path/to/mysql/bin/mysql_config

迁移可以很好地创建表,但每次尝试插入时都会死掉。

任何帮助都会很棒

【问题讨论】:

    标签: mysql ruby-on-rails ruby rake


    【解决方案1】:

    这些安装 MySQL 的说明对我在 Mac OS X Snow Leopard 上非常有用:http://hivelogic.com/articles/compiling-mysql-on-snow-leopard

    【讨论】:

      【解决方案2】:

      鉴于您遇到的错误,您似乎不需要 mysql gem。 其他潜在问题:

      1. 安装 gem 后忘记重新启动应用程序/服务器。
      2. 您的 mysql 用户权限存在某种问题。 (例如:没有写权限)
      3. 您使用了错误的 mysql 驱动程序/gem。

      编辑:如果您在 Mac 上进行 ruby​​ 开发,我强烈建议同时使用 homebrewrvm

      【讨论】:

        【解决方案3】:

        如果在您的控制台上运行“mysql -u root”可以正常运行,则可以使用 hivelogic.com 中的说明(根据 John Topley 的链接)重新安装您的 mysql gem,方法是输入以下内容:

        sudo gem install mysql --with-mysql-dir=/usr/local/mysql

        如果您将 MySQL 64 位安装为 pkg,请尝试通过手动编译重新安装。

        【讨论】:

          【解决方案4】:

          提示:数据库迁移不利于播种。如果您使用 rails >= 2.3.4,那么您应该为此使用 db/seeds.rb 和 $ rake db:seed 任务。

          【讨论】:

            猜你喜欢
            • 2011-10-09
            • 1970-01-01
            • 2012-11-26
            • 2012-06-19
            • 1970-01-01
            • 2017-10-04
            • 1970-01-01
            • 1970-01-01
            • 2011-10-24
            相关资源
            最近更新 更多