执行rake db:migrate时的两个错误

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:         rails的确是来的方便,一个rails generate scaffold命令下来就可以生成view、controller和model的所有文件,然后再执行rake db:migrate就可以生成相应的数据库表结构。

        rails的确是来的方便,一个rails generate scaffold命令下来就可以生成view、controller和model的所有文件,然后再执行rake db:migrate就可以生成相应的数据库表结构。而就是这个简单的rake db:migrate却产生了预想不到的问题:

         首先交代一下背景:rails创建项目时,默认使用了SQLite数据库。为了快速上手,我换成了MySQL,也修改了相应的配置文件config/database.yml。

         第一个问题

                 rake aborted!

                 uninitialized constant Rake:DSL

        原因:默认安装的rake版本过低,不兼容

        解决办法:升级rake

        步骤:1. 安装0.9.2版本的rake,gem install rake -version=0.9.2

                     2. 卸载原来版本(可以通过gem -list rake查看当前安装的版本), gem uninstall rake -version=0.8.7

                     3. 更新所有组件,bundle update

         4.运行 rake db:migrate。于是出现第二个问题。


   第二个问题

         rake aborted!

         Mysql::Error: query: not connected: SHOW TABLES

   原因:MySQL5.1自带的libmySQL.dll和当前的rails不兼容

   解决办法:使用旧版本替换。

   步骤:1. 下载旧版本的libmySQL.dll: http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll

        2. 将下载的文件放到%RUBY_HOME/bin目录下。

 

   参考:

   http://stackoverflow.com/questions/6085610/rails-rake-problems-uninitialized-constant-rakedsl

       http://rordiary.com/blog/tag/mysql/

   

    

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
存储 Linux 网络安全
手把手教你在天翼云部署一台FortiGate云主机
手把手教你在天翼云部署一台FortiGate云主机
|
负载均衡 算法 Java
So easy! 教你实现自定义负载均衡策略!
So easy! 教你实现自定义负载均衡策略!
1614 0
|
8月前
|
前端开发 JavaScript 安全
剖析跨域问题始末及其解决方案——前端必备交叉知识(一)
跨域问题是前端开发中的常见挑战,了解并掌握不同的跨域解决方案能帮助你更高效地进行开发工作。本文对同源策略、跨域以及解决跨域的三种方案: CORS、JSONP、代理等跨域技术进行了介绍。选择合适的跨域解决方案非常重要。 在实际开发中,推荐优先考虑使用 CORS,因为它是现代浏览器支持的标准,且安全性较高。如果服务器无法修改,则可以考虑使用代理。如果是特殊情况,可以使用 JSONP,但要注意安全性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错
|
11月前
|
运维 网络安全 网络架构
IEPL与IPLC国际专线的区别介绍
IPLC(国际私有租用线路)和IEPL(国际以太网专线)均为企业提供跨国端到端的通信线路服务。IPLC基于SDH/DDN技术,提供专有带宽连接,支持多种业务传输,具备高可靠性和灵活性。IEPL则基于MSTP平台,采用GFP封装,提供以太网接口的增强型专线服务,具有更高的灵活性、安全性及成本效益,适合需要高带宽和低延迟的业务场景。两者主要区别在于技术基础、接口类型及成本结构。
2249 70
|
人工智能
[AI 阿里 EMO] 集成进通义千问app,全民演唱,人人可用!
阿里EMO技术的最新进展,现在集成进通义千问app,允许用户通过图+音频生成任意时长的视频,实现全民演唱的互动体验。
[AI 阿里 EMO] 集成进通义千问app,全民演唱,人人可用!
|
开发工具 git
IDEA更改远程git仓库地址
【9月更文挑战第27天】本文介绍了两种在IntelliJ IDEA中更改远程Git仓库地址的方法:一是通过图形界面,在VCS设置中直接修改;二是通过IDEA内置的命令行工具使用`git`命令进行更改。具体步骤包括从版本控制菜单进入项目设置、修改远程仓库URL,以及使用`git remote set-url`命令更新仓库地址,并验证修改结果。这些方法适用于项目迁移或更换仓库地址的情况。
2689 6
|
应用服务中间件 网络安全 nginx
如何配置https站点
如何配置https站点 第一步 配置一个https站点需要有一个ssl的证书,我们可以去申请一个免费的ssl证书:     第二步 有了ssl的证书后,我们可以将需要的服务器类型的压缩包解压后上传到服务器中。
2029 0
|
Java Linux Maven
IDEA maven 设置成国内源,阿里源,清华大学源
IDEA maven 设置成国内源,阿里源,清华大学源
IDEA maven 设置成国内源,阿里源,清华大学源
|
网络协议 Unix Linux
【proxychains4】虚拟机内kali走主机代理
【proxychains4】虚拟机内kali走主机代理
2276 0

热门文章

最新文章