Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
dcbb79d6
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
dcbb79d6
编写于
3月 07, 2019
作者:
G
Gannon McGibbon
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add version awareness to rails db:system:change
上级
a62683f3
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
30 addition
and
5 deletion
+30
-5
railties/lib/rails/generators/rails/db/system/change/change_generator.rb
...ils/generators/rails/db/system/change/change_generator.rb
+12
-2
railties/test/generators/db_system_change_generator_test.rb
railties/test/generators/db_system_change_generator_test.rb
+18
-3
未找到文件。
railties/lib/rails/generators/rails/db/system/change/change_generator.rb
浏览文件 @
dcbb79d6
...
...
@@ -35,8 +35,9 @@ def edit_database_config
end
def
edit_gemfile
database_gem_name
,
_
=
gem_for_database
gsub_file
(
"Gemfile"
,
all_database_gems_regex
,
database_gem_name
)
name
,
version
=
gem_for_database
gsub_file
(
"Gemfile"
,
all_database_gems_regex
,
name
)
gsub_file
(
"Gemfile"
,
gem_entry_regex_for
(
name
),
gem_entry_for
(
name
,
*
version
))
end
private
...
...
@@ -48,6 +49,15 @@ def all_database_gems_regex
all_database_gem_names
=
all_database_gems
.
map
(
&
:first
)
/(\b
#{
all_database_gem_names
.
join
(
'\b|\b'
)
}
\b)/
end
def
gem_entry_regex_for
(
gem_name
)
/^gem.*\b
#{
gem_name
}
\b.*/
end
def
gem_entry_for
(
*
gem_name_and_version
)
gem_name_and_version
.
map!
{
|
segment
|
"'
#{
segment
}
'"
}
"gem
#{
gem_name_and_version
.
join
(
", "
)
}
"
end
end
end
end
...
...
railties/test/generators/db_system_change_generator_test.rb
浏览文件 @
dcbb79d6
...
...
@@ -40,7 +40,7 @@ class ChangeGeneratorTest < Rails::Generators::TestCase
assert_file
(
"Gemfile"
)
do
|
content
|
assert_match
"# Use pg as the database for Active Record"
,
content
assert_match
"gem 'pg'"
,
content
assert_match
"gem 'pg'
, '>= 0.18', '< 2.0'
"
,
content
end
end
...
...
@@ -54,7 +54,7 @@ class ChangeGeneratorTest < Rails::Generators::TestCase
assert_file
(
"Gemfile"
)
do
|
content
|
assert_match
"# Use mysql2 as the database for Active Record"
,
content
assert_match
"gem 'mysql2'"
,
content
assert_match
"gem 'mysql2'
, '>= 0.4.4'
"
,
content
end
end
...
...
@@ -68,7 +68,22 @@ class ChangeGeneratorTest < Rails::Generators::TestCase
assert_file
(
"Gemfile"
)
do
|
content
|
assert_match
"# Use sqlite3 as the database for Active Record"
,
content
assert_match
"gem 'sqlite3'"
,
content
assert_match
"gem 'sqlite3', '~> 1.3', '>= 1.3.6'"
,
content
end
end
test
"change from versioned gem to other versioned gem"
do
run_generator
[
"--to"
,
"sqlite3"
]
run_generator
[
"--to"
,
"mysql"
,
"--force"
]
assert_file
(
"config/database.yml"
)
do
|
content
|
assert_match
"adapter: mysql2"
,
content
assert_match
"database: test_app"
,
content
end
assert_file
(
"Gemfile"
)
do
|
content
|
assert_match
"# Use mysql2 as the database for Active Record"
,
content
assert_match
"gem 'mysql2', '>= 0.4.4'"
,
content
end
end
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录