ROR做Unit Test的速度有些让人失望,使用内存数据库能够大幅提高Unit Test的速度,提高开发效率,今天刚刚配上了SQLite3,下面作一个简要攻略。
假设你已经有一个rails的工程了,并且已经用SQLite3生成了一个development模式的数据库db/eplanner_development.db。
1. 安装SQLite-ruby
运行: gem install sqlite3-ruby
选择mswin32安装
2. 测试SQLite-ruby
require 'sqlite3'
db = SQLite3::Database.new( "test.db" )
3. 修改database.yml
# gem install sqlite3-ruby
development:
adapter: sqlite3
database: db/eplanner_development.db
# In-memory SQLite 3 database. Useful for tests.
test:
adapter: sqlite3
database: ":memory:"
4. 修改environment.rb
把
# config.active_record.schema_format = :ruby
中的注释去掉
5. 运行rake db_schema_dump
生成schema.rb
6. 修改environment.rb,把下面代码加到environment.rb的结尾
def in_memory_database?
ENV["RAILS_ENV"] == "test" and
ActiveRecord::Base.connection.class==ActiveRecord::ConnectionAdapters::SQLiteAdapter and
Rails::Configuration.new.database_configuration['test']['database'] == ':memory:'
end
if in_memory_database?
puts "creating sqlite in memory database"
load "#{RAILS_ROOT}/db/schema.rb" # use db agnostic schema by default
# ActiveRecord::Migrator.up('db/migrate') # use migrations
end
好了,现在可以享受内存数据库上做单元测试的快感了。在我的机器上,比MySQL上作单元测试速度要快接近一个数量级。
再讲一下如何再SQLite和MYSQL之间如何切换。除了修改database.xml外,还要注释掉
config.active_record.schema_format = :ruby
然后运行rake migrate
这个可能是ror migrate的一个BUG。
相关推荐
《Ruby on Rails:构建高效Web应用的神器》 Ruby是一种高度灵活、面向对象的编程语言,它的设计理念强调了代码的可读性和简洁性。由Yukihiro Matsumoto(马特松,也被称作Matz)在1995年创建,Ruby受到了Perl、...
在Ruby on Rails中,方法是执行特定任务的基本单元。以下列举了一些常用的方法: 1. **字符串处理方法**: - `capitalize!`: 将字符串的第一个字母转换为大写。 - `center`: 将字符串居中。 - `chomp!`: 删除字符串...
[Ruby_on_Rails][中文]_02._[Mac]_安裝Ruby_on_Rail_6.x
这两本书要是能看透了,我想已经能够领会ruby的奥妙了,在这里在介绍一本终极书籍,我感觉这本很玄妙,所以还没开始看,打算把上诉两本看通了得在看这本,如果有牛人的话可以一起看,因为语言都是相通的你有别的...
[Ruby_on_Rails][中文]_03._[Windows]_安裝Ruby_on_Rail_6.x
Ruby是一种面向对象的编程语言,以其简洁、优雅的语法著称,被广泛应用于Web开发,尤其是与Ruby on Rails框架结合使用。"Ruby新手学习书"和"Rails_4_days"这两个资源是为初学者设计的,旨在帮助他们快速掌握Ruby语言...
- **Gem**: Rails 项目中使用的第三方库。 - **流行 Gem**: - Devise: 用户认证。 - CanCanCan: 授权。 - ActiveAdmin: 后台管理界面。 - Paperclip 或 CarrierWave: 文件上传。 - RSpec 和 Capybara: 测试框架...
在过去的几年中,《Ruby on Rails Tutorial》这本书被视为介绍使用 Rails 进行 Web 开发的先驱者。 在这个全球互联的世界中,计算机编程和 Web 应用程序开发都在迅猛发展,我很期待能为中国的开发者提供 Ruby on ...
您可能要讲的内容: Ruby版本系统依赖配置数据库创建数据库初始化如何运行测试套件服务(作业队列,缓存服务器,搜索引擎等) 部署说明...Ruby on Rails教程样本应用程序参考实施这是(第6版)中的示例应用程序的...
Ruby-Devise是Ruby on Rails框架中的一个强大且灵活的身份验证解决方案,它为开发者提供了处理用户注册、登录、密码重置等常见身份验证需求的工具。这个库是基于Warden,一个通用的身份验证库,允许Devise在Rails...
【ejemplo_rails_crud:Crud Para Probar Ruby on Rails】是一个基于Ruby on Rails框架的简单CRUD(创建、读取、更新、删除)应用程序示例。这个项目旨在帮助开发者了解如何在Rails环境下构建基本的数据操作功能。让...
关于ruby on rail的ajax,英文版
react-devise, Ruby on Rails 设计验证服务器的ReactJS前端 ATTENTON: 目前,这必须是实验性软件,而不是在生产中使用。设计简介设计长期以来一直是 Rails 应用的认证库。 只需将设计放入你的Rails 应用程序,进行...
**Ruby on Rails(RoR)概述** Ruby on Rails,简称RoR,是一个基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,用于快速开发高效、可维护的Web应用。RoR的核心理念是DRY(Don't ...
在描述中提到的“此模块将直接在注册表中更改本地用户的密码”,这暗示了一个特定的Ruby模块可能被设计用来操作Windows操作系统的注册表,这是一个存储系统设置和配置信息的关键数据库。注册表中包含有关用户账户和...
bitnami-docker-rails:Bitnami Ruby on Rails Docker组成开发环境
自述 此自述文件通常会记录... Ruby版 系统依赖 配置 数据库创建 数据库初始化 如何运行测试套件 服务(作业队列、缓存服务器、搜索引擎等) 部署说明 … 如果您不打算运行rake doc:app请随意使用不同的标记语言。
在本研究中,虽然未详细提及CFD的应用,但可以推测,除了风洞实验之外,CFD也可能被用于验证实验结果,或者作为设计过程的一部分来优化铁路车辆的气动性能。CFD模拟可以提供更全面的流场数据,帮助工程师理解复杂...