ActiveRecord SQLServer Adapter 使用教程
1. 项目的目录结构及介绍
activerecord-sqlserver-adapter/
├── app
│ └── models
├── bin
├── config
│ └── environments
├── db
│ └── migrate
├── lib
│ ├── active_record
│ │ └── connection_adapters
│ │ └── sqlserver
│ └── tasks
├── test
│ ├── fixtures
│ │ └── files
│ ├── integration
│ ├── models
│ ├── support
│ └── test_helper.rb
├── Gemfile
├── Gemfile.lock
├── Rakefile
└── README.md
- app/models: 存放模型文件。
- bin: 存放可执行文件。
- config: 存放配置文件,包括环境配置。
- db/migrate: 存放数据库迁移文件。
- lib/active_record/connection_adapters/sqlserver: 存放SQL Server适配器的主要代码。
- test: 存放测试文件,包括集成测试、模型测试等。
- Gemfile: 定义项目所需的Gem依赖。
- Gemfile.lock: 锁定Gem版本。
- Rakefile: 定义Rake任务。
- README.md: 项目说明文档。
2. 项目的启动文件介绍
项目的启动文件通常是 config/application.rb
,它负责加载应用程序的基本配置和依赖。
require_relative "boot"
require "rails/all"
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)
module MyApp
class Application < Rails::Application
# Initialize configuration defaults for originally generated Rails version.
config.load_defaults 6.0
# Configuration for the application, engines, and railties goes here.
#
# These settings can be overridden in specific environments using the files
# in config/environments, which are processed later.
#
# config.time_zone = "Central Time (US & Canada)"
# config.eager_load_paths << Rails.root.join("extras")
end
end
3. 项目的配置文件介绍
主要的配置文件位于 config/database.yml
,它定义了数据库的连接信息。
default: &default
adapter: sqlserver
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
development:
<<: *default
database: my_app_development
username: my_app
password: <%= ENV['MY_APP_DATABASE_PASSWORD'] %>
host: localhost
test:
<<: *default
database: my_app_test
username: my_app
password: <%= ENV['MY_APP_DATABASE_PASSWORD'] %>
host: localhost
production:
<<: *default
database: my_app_production
username: my_app
password: <%= ENV['MY_APP_DATABASE_PASSWORD'] %>
host: localhost
- adapter: 指定数据库适配器,这里是
sqlserver
。 - encoding: 指定字符编码。
- pool: 指定连接池大小。
- timeout: 指定连接超时时间。
- database: 指定数据库名称。
- username: 指定数据库用户名。
- password: 指定数据库密码。
- host: 指定数据库主机地址。