index_shotgun 0.2.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/test.yml +222 -0
- data/.github_changelog_generator +2 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +26 -2
- data/CHANGELOG.md +47 -0
- data/Gemfile +7 -5
- data/README.md +4 -5
- data/ci/build.sh +31 -0
- data/{travis_ci → ci}/database.yml.mysql +3 -1
- data/ci/database.yml.oracle +5 -0
- data/{travis_ci → ci}/database.yml.postgresql +3 -0
- data/{travis_ci → ci}/database.yml.sqlite3 +0 -0
- data/ci/install.sh +47 -0
- data/exe/index_shotgun +1 -1
- data/gemfiles/activerecord_5_0.gemfile +26 -0
- data/gemfiles/activerecord_5_1.gemfile +26 -0
- data/gemfiles/activerecord_5_2.gemfile +26 -0
- data/gemfiles/activerecord_6_0.gemfile +27 -0
- data/gemfiles/activerecord_6_1.gemfile +27 -0
- data/gemfiles/activerecord_7_0.gemfile +29 -0
- data/gemfiles/common.gemfile +15 -0
- data/index_shotgun.gemspec +16 -19
- data/lib/index_shotgun/analyzer.rb +222 -10
- data/lib/index_shotgun/cli.rb +16 -14
- data/lib/index_shotgun/tasks/index_shotgun.rake +3 -1
- data/lib/index_shotgun/version.rb +1 -1
- metadata +67 -43
- data/.hound.yml +0 -2
- data/.rubocop_standard.yml +0 -196
- data/.travis.yml +0 -27
- data/travis_ci/build.sh +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 177ae0bdc732e173f7813384773d2d1d7494a3427a2e9683caafdc2c7dde5112
|
4
|
+
data.tar.gz: 8d671561f7c7aa86a4169eef4ed7e7f35fd39279e5809e13acbbd8b1a9892e70
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 523d34c9aad011951a1b76beb8e55a7ff07282a83b830d19f2029966e6100f75de8ea9aa1a9df77c3fe4f464076866629b7e031168156c4d19434cd2cff5c6d9
|
7
|
+
data.tar.gz: a5319c356f1f834e5b294cfc844f5eb8b578172de2650eff782f0987ac2a847ec0cde84e73db398773e65345ef13361bf7e9efc48ffd7e4be9eeef157a95fbfb
|
@@ -0,0 +1,222 @@
|
|
1
|
+
name: test
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- master
|
7
|
+
pull_request:
|
8
|
+
types:
|
9
|
+
- opened
|
10
|
+
- synchronize
|
11
|
+
- reopened
|
12
|
+
schedule:
|
13
|
+
- cron: "0 20 * * 5" # JST 5:00 (Sat)
|
14
|
+
|
15
|
+
jobs:
|
16
|
+
test:
|
17
|
+
runs-on: ubuntu-latest
|
18
|
+
|
19
|
+
strategy:
|
20
|
+
fail-fast: false
|
21
|
+
|
22
|
+
matrix:
|
23
|
+
ruby:
|
24
|
+
- "2.4"
|
25
|
+
- "2.5"
|
26
|
+
- "2.6"
|
27
|
+
- "2.7"
|
28
|
+
- "3.0"
|
29
|
+
gemfile:
|
30
|
+
- activerecord_5_0
|
31
|
+
- activerecord_5_1
|
32
|
+
- activerecord_5_2
|
33
|
+
- activerecord_6_0
|
34
|
+
- activerecord_6_1
|
35
|
+
- activerecord_7_0
|
36
|
+
database:
|
37
|
+
- sqlite3
|
38
|
+
- mysql
|
39
|
+
- postgresql
|
40
|
+
- oracle
|
41
|
+
exclude:
|
42
|
+
# TODO: Remove this after activerecord-oracle_enhanced-adapter supports activerecord v7
|
43
|
+
- database: oracle
|
44
|
+
gemfile: activerecord_7_0
|
45
|
+
|
46
|
+
# Rails 7.0+ requires Ruby 2.7+
|
47
|
+
- ruby: "2.4"
|
48
|
+
gemfile: activerecord_7_0
|
49
|
+
- ruby: "2.5"
|
50
|
+
gemfile: activerecord_7_0
|
51
|
+
- ruby: "2.6"
|
52
|
+
gemfile: activerecord_7_0
|
53
|
+
|
54
|
+
# Rails 6.0+ requires Ruby 2.5+
|
55
|
+
- ruby: "2.4"
|
56
|
+
gemfile: activerecord_6_0
|
57
|
+
- ruby: "2.4"
|
58
|
+
gemfile: activerecord_6_1
|
59
|
+
|
60
|
+
# Rails 5.x doesn't works on Ruby 3.0+
|
61
|
+
- ruby: "3.0"
|
62
|
+
gemfile: activerecord_5_0
|
63
|
+
- ruby: "3.0"
|
64
|
+
gemfile: activerecord_5_1
|
65
|
+
- ruby: "3.0"
|
66
|
+
gemfile: activerecord_5_2
|
67
|
+
|
68
|
+
env:
|
69
|
+
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
|
70
|
+
DATABASE: ${{ matrix.database }}
|
71
|
+
|
72
|
+
# for oracle
|
73
|
+
LD_LIBRARY_PATH: /opt/oracle/instantclient_19_3
|
74
|
+
NLS_LANG: AMERICAN_AMERICA.UTF8
|
75
|
+
ORACLE_SYSTEM_PASSWORD: oracle
|
76
|
+
|
77
|
+
services:
|
78
|
+
mysql:
|
79
|
+
image: mysql:8
|
80
|
+
ports:
|
81
|
+
- 3306
|
82
|
+
env:
|
83
|
+
MYSQL_ROOT_PASSWORD: root
|
84
|
+
|
85
|
+
postgresql:
|
86
|
+
image: postgres:10-alpine
|
87
|
+
ports:
|
88
|
+
- 5432
|
89
|
+
env:
|
90
|
+
POSTGRES_USER: postgres
|
91
|
+
POSTGRES_PASSWORD: postgres
|
92
|
+
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
93
|
+
|
94
|
+
oracle:
|
95
|
+
image: deepdiver/docker-oracle-xe-11g
|
96
|
+
ports:
|
97
|
+
- 1521
|
98
|
+
env:
|
99
|
+
ORACLE_SYSTEM_PASSWORD: oracle
|
100
|
+
|
101
|
+
steps:
|
102
|
+
- uses: actions/checkout@v2
|
103
|
+
|
104
|
+
- uses: ruby/setup-ruby@v1
|
105
|
+
with:
|
106
|
+
ruby-version: ${{ matrix.ruby }}
|
107
|
+
|
108
|
+
- name: Cache vendor/bundle
|
109
|
+
uses: actions/cache@v1
|
110
|
+
id: cache_gem
|
111
|
+
with:
|
112
|
+
path: vendor/bundle
|
113
|
+
key: v1-gem-${{ runner.os }}-${{ matrix.ruby }}-${{ matrix.gemfile }}-${{ env.DATABASE }}-${{ github.sha }}
|
114
|
+
restore-keys: |
|
115
|
+
v1-gem-${{ runner.os }}-${{ matrix.ruby }}-${{ matrix.gemfile }}-${{ env.DATABASE }}-
|
116
|
+
v1-gem-${{ runner.os }}-${{ matrix.ruby }}-${{ matrix.gemfile }}-
|
117
|
+
|
118
|
+
- name: Install
|
119
|
+
run: |
|
120
|
+
set -xe
|
121
|
+
./ci/install.sh
|
122
|
+
|
123
|
+
- name: Setup Code Climate Test Reporter
|
124
|
+
uses: aktions/codeclimate-test-reporter@v1
|
125
|
+
with:
|
126
|
+
codeclimate-test-reporter-id: ${{ secrets.CC_TEST_REPORTER_ID }}
|
127
|
+
command: before-build
|
128
|
+
continue-on-error: true
|
129
|
+
|
130
|
+
# c.f. https://github.blog/changelog/2020-02-21-github-actions-breaking-change-ubuntu-virtual-environments-will-no-longer-start-the-mysql-service-automatically/
|
131
|
+
- run: sudo /etc/init.d/mysql start
|
132
|
+
|
133
|
+
- name: Run test
|
134
|
+
run: |
|
135
|
+
set -xe
|
136
|
+
./ci/build.sh
|
137
|
+
env:
|
138
|
+
MYSQL_PORT: ${{ job.services.mysql.ports['3306'] }}
|
139
|
+
POSTGRESQL_PORT: ${{ job.services.postgresql.ports['5432'] }}
|
140
|
+
ORACLE_PORT: ${{ job.services.oracle.ports['1521'] }}
|
141
|
+
|
142
|
+
- name: Teardown Code Climate Test Reporter
|
143
|
+
uses: aktions/codeclimate-test-reporter@v1
|
144
|
+
with:
|
145
|
+
codeclimate-test-reporter-id: ${{ secrets.CC_TEST_REPORTER_ID }}
|
146
|
+
command: after-build
|
147
|
+
if: always()
|
148
|
+
continue-on-error: true
|
149
|
+
|
150
|
+
- name: Slack Notification (not success)
|
151
|
+
uses: lazy-actions/slatify@master
|
152
|
+
if: "! success()"
|
153
|
+
continue-on-error: true
|
154
|
+
with:
|
155
|
+
job_name: ${{ format('*build* ({0}, {1}, {2})', matrix.ruby, matrix.gemfile, matrix.database) }}
|
156
|
+
type: ${{ job.status }}
|
157
|
+
icon_emoji: ":octocat:"
|
158
|
+
url: ${{ secrets.SLACK_WEBHOOK }}
|
159
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
160
|
+
|
161
|
+
rubocop:
|
162
|
+
runs-on: ubuntu-latest
|
163
|
+
|
164
|
+
env:
|
165
|
+
RUBY_VERSION: 2.4
|
166
|
+
BUNDLE_WITHOUT: mysql postgresql sqlite3 oracle
|
167
|
+
|
168
|
+
steps:
|
169
|
+
- uses: actions/checkout@v1
|
170
|
+
|
171
|
+
- uses: ruby/setup-ruby@v1
|
172
|
+
with:
|
173
|
+
ruby-version: ${{ env.RUBY_VERSION }}
|
174
|
+
|
175
|
+
- name: Cache vendor/bundle
|
176
|
+
uses: actions/cache@v1
|
177
|
+
id: cache_gem_rubocop
|
178
|
+
with:
|
179
|
+
path: vendor/bundle
|
180
|
+
key: v1-gem-rubocop-${{ runner.os }}-${{ env.RUBY_VERSION }}-${{ github.sha }}
|
181
|
+
restore-keys: |
|
182
|
+
v1-gem-rubocop-${{ runner.os }}-${{ env.RUBY_VERSION }}-
|
183
|
+
|
184
|
+
- name: Install
|
185
|
+
run: |
|
186
|
+
set -xe
|
187
|
+
./ci/install.sh
|
188
|
+
|
189
|
+
- name: Run rubocop
|
190
|
+
run: |
|
191
|
+
set -xe
|
192
|
+
bundle exec rubocop
|
193
|
+
|
194
|
+
- name: Slack Notification (not success)
|
195
|
+
uses: lazy-actions/slatify@master
|
196
|
+
if: "! success()"
|
197
|
+
continue-on-error: true
|
198
|
+
with:
|
199
|
+
job_name: '*rubocop*'
|
200
|
+
type: ${{ job.status }}
|
201
|
+
icon_emoji: ":octocat:"
|
202
|
+
url: ${{ secrets.SLACK_WEBHOOK }}
|
203
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
204
|
+
|
205
|
+
notify:
|
206
|
+
needs:
|
207
|
+
- test
|
208
|
+
- rubocop
|
209
|
+
|
210
|
+
runs-on: ubuntu-latest
|
211
|
+
|
212
|
+
steps:
|
213
|
+
- name: Slack Notification (success)
|
214
|
+
uses: lazy-actions/slatify@master
|
215
|
+
if: always()
|
216
|
+
continue-on-error: true
|
217
|
+
with:
|
218
|
+
job_name: '*build*'
|
219
|
+
type: ${{ job.status }}
|
220
|
+
icon_emoji: ":octocat:"
|
221
|
+
url: ${{ secrets.SLACK_WEBHOOK }}
|
222
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,4 +1,28 @@
|
|
1
|
-
|
1
|
+
inherit_gem:
|
2
|
+
onkcop:
|
3
|
+
- "config/rubocop.yml"
|
4
|
+
- "config/rspec.yml"
|
2
5
|
|
3
|
-
|
6
|
+
AllCops:
|
7
|
+
TargetRubyVersion: 2.4
|
8
|
+
|
9
|
+
Layout/AlignHash:
|
10
|
+
EnforcedHashRocketStyle: table
|
11
|
+
EnforcedColonStyle: table
|
12
|
+
|
13
|
+
Metrics/AbcSize:
|
14
|
+
Max: 33
|
15
|
+
|
16
|
+
Metrics/MethodLength:
|
17
|
+
Max: 25
|
18
|
+
|
19
|
+
RSpec/NestedGroups:
|
4
20
|
Enabled: false
|
21
|
+
|
22
|
+
RSpec/SharedExamples:
|
23
|
+
Enabled: false
|
24
|
+
|
25
|
+
Security/Eval:
|
26
|
+
Exclude:
|
27
|
+
- "Gemfile"
|
28
|
+
- "gemfiles/*.gemfile"
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,51 @@
|
|
1
1
|
# Change Log
|
2
|
+
## Unreleased
|
3
|
+
[Full Changelog](https://github.com/sue445/index_shotgun/compare/v1.0.1...master)
|
4
|
+
|
5
|
+
## [v1.0.1](https://github.com/sue445/index_shotgun/tree/v1.0.1) (2021/11/20)
|
6
|
+
[Full Changelog](https://github.com/sue445/index_shotgun/compare/v1.0.0...v1.0.1)
|
7
|
+
|
8
|
+
* Enable MFA requirement for gem releasing
|
9
|
+
* https://github.com/sue445/index_shotgun/pull/111
|
10
|
+
|
11
|
+
## [v1.0.0](https://github.com/sue445/index_shotgun/tree/v1.0.0) (2019/01/06)
|
12
|
+
[Full Changelog](https://github.com/sue445/index_shotgun/compare/v0.3.0...v1.0.0)
|
13
|
+
|
14
|
+
### Breaking changes :bomb:
|
15
|
+
* Drop support for Ruby 2.2 and Rails 4.2
|
16
|
+
* https://github.com/sue445/index_shotgun/pull/60
|
17
|
+
|
18
|
+
## [v0.3.0](https://github.com/sue445/index_shotgun/tree/v0.3.0) (2016/07/23)
|
19
|
+
[Full Changelog](https://github.com/sue445/index_shotgun/compare/v0.2.1...v0.3.0)
|
20
|
+
|
21
|
+
**Merged pull requests:**
|
22
|
+
|
23
|
+
- exit on failure if exists duplicate index [\#26](https://github.com/sue445/index_shotgun/pull/26) ([sue445](https://github.com/sue445))
|
24
|
+
- Resupport ruby 2.1 [\#25](https://github.com/sue445/index_shotgun/pull/25) ([sue445](https://github.com/sue445))
|
25
|
+
- Support activerecord 5 [\#24](https://github.com/sue445/index_shotgun/pull/24) ([sue445](https://github.com/sue445))
|
26
|
+
- Add CI for oracle [\#23](https://github.com/sue445/index_shotgun/pull/23) ([sue445](https://github.com/sue445))
|
27
|
+
- Test ruby 2.3.1 [\#22](https://github.com/sue445/index_shotgun/pull/22) ([sue445](https://github.com/sue445))
|
28
|
+
|
29
|
+
## [v0.2.1](https://github.com/sue445/index_shotgun/tree/v0.2.1) (2016/02/17)
|
30
|
+
[Full Changelog](https://github.com/sue445/index_shotgun/compare/v0.2.0...v0.2.1)
|
31
|
+
|
32
|
+
**Closed issues:**
|
33
|
+
|
34
|
+
- Support mysql2 0.4.x [\#8](https://github.com/sue445/index_shotgun/issues/8)
|
35
|
+
|
36
|
+
**Merged pull requests:**
|
37
|
+
|
38
|
+
- Support mysql2 0.4+ [\#20](https://github.com/sue445/index_shotgun/pull/20) ([sue445](https://github.com/sue445))
|
39
|
+
- Relax bundler version [\#19](https://github.com/sue445/index_shotgun/pull/19) ([sue445](https://github.com/sue445))
|
40
|
+
- Add ruby 2.3 [\#18](https://github.com/sue445/index_shotgun/pull/18) ([sue445](https://github.com/sue445))
|
41
|
+
|
42
|
+
## [v0.2.0](https://github.com/sue445/index_shotgun/tree/v0.2.0) (2015/11/09)
|
43
|
+
[Full Changelog](https://github.com/sue445/index_shotgun/compare/v0.1.0...v0.2.0)
|
44
|
+
|
45
|
+
**Merged pull requests:**
|
46
|
+
|
47
|
+
- Support Oracle Database [\#17](https://github.com/sue445/index_shotgun/pull/17) ([koic](https://github.com/koic))
|
48
|
+
- Add group to database gem dependency [\#16](https://github.com/sue445/index_shotgun/pull/16) ([sue445](https://github.com/sue445))
|
2
49
|
|
3
50
|
## [v0.1.0](https://github.com/sue445/index_shotgun/tree/v0.1.0) (2015/09/30)
|
4
51
|
[Full Changelog](https://github.com/sue445/index_shotgun/compare/v0.1.0.beta3...v0.1.0)
|
data/Gemfile
CHANGED
@@ -3,8 +3,12 @@ source "https://rubygems.org"
|
|
3
3
|
# Specify your gem's dependencies in index_shotgun.gemspec
|
4
4
|
gemspec
|
5
5
|
|
6
|
+
group :postgresql do
|
7
|
+
gem "pg"
|
8
|
+
end
|
9
|
+
|
6
10
|
group :mysql do
|
7
|
-
gem "mysql2"
|
11
|
+
gem "mysql2"
|
8
12
|
end
|
9
13
|
|
10
14
|
group :oracle do
|
@@ -12,10 +16,8 @@ group :oracle do
|
|
12
16
|
gem "ruby-oci8"
|
13
17
|
end
|
14
18
|
|
15
|
-
group :postgresql do
|
16
|
-
gem "pg"
|
17
|
-
end
|
18
|
-
|
19
19
|
group :sqlite3 do
|
20
20
|
gem "sqlite3"
|
21
21
|
end
|
22
|
+
|
23
|
+
eval_gemfile "#{__dir__}/gemfiles/common.gemfile"
|
data/README.md
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
# IndexShotgun :fire: :gun: :cop:
|
2
2
|
[![Gem Version](https://badge.fury.io/rb/index_shotgun.svg)](http://badge.fury.io/rb/index_shotgun)
|
3
|
-
[![Build Status](https://
|
3
|
+
[![Build Status](https://github.com/sue445/index_shotgun/workflows/test/badge.svg?branch=master)](https://github.com/sue445/index_shotgun/actions?query=workflow%3Atest)
|
4
4
|
[![Code Climate](https://codeclimate.com/github/sue445/index_shotgun/badges/gpa.svg)](https://codeclimate.com/github/sue445/index_shotgun)
|
5
5
|
[![Coverage Status](https://coveralls.io/repos/sue445/index_shotgun/badge.svg?branch=master&service=github)](https://coveralls.io/github/sue445/index_shotgun?branch=master)
|
6
|
-
[![Dependency Status](https://gemnasium.com/sue445/index_shotgun.svg)](https://gemnasium.com/sue445/index_shotgun)
|
7
6
|
|
8
7
|
Duplicate index checker.
|
9
8
|
|
@@ -46,7 +45,7 @@ ALTER TABLE `user_stocks` DROP INDEX `index_user_stocks_on_user_id`;
|
|
46
45
|
```
|
47
46
|
|
48
47
|
## Requirements
|
49
|
-
* Ruby 2.
|
48
|
+
* Ruby 2.3+
|
50
49
|
* Database you want to use (ex. MySQL, PostgreSQL or SQLite3)
|
51
50
|
|
52
51
|
## Installation
|
@@ -85,7 +84,7 @@ If you want to use as commandline tool, you need to install these gems.
|
|
85
84
|
|
86
85
|
```sh
|
87
86
|
# MySQL
|
88
|
-
$ gem install mysql2
|
87
|
+
$ gem install mysql2
|
89
88
|
|
90
89
|
# Oracle
|
91
90
|
$ gem install activerecord-oracle_enhanced-adapter ruby-oci8
|
@@ -97,7 +96,7 @@ $ gem install pg
|
|
97
96
|
$ gem install sqlite3
|
98
97
|
```
|
99
98
|
|
100
|
-
**
|
99
|
+
**Note:** requirements `activerecord` gem v4.2.5+ when using `mysql2` gem v0.4.0+
|
101
100
|
|
102
101
|
## Usage
|
103
102
|
### Ruby app
|
data/ci/build.sh
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
#!/bin/bash -xe
|
2
|
+
|
3
|
+
cp ci/database.yml.${DATABASE} spec/config/database.yml
|
4
|
+
bundle exec rspec --profile
|
5
|
+
|
6
|
+
bundle exec ./exe/index_shotgun version
|
7
|
+
|
8
|
+
#########################
|
9
|
+
set +e
|
10
|
+
|
11
|
+
if [ ${DATABASE} = "mysql" ]; then
|
12
|
+
bundle exec ./exe/index_shotgun mysql --database=index_shotgun_test --username=root --password=root --port=$MYSQL_PORT
|
13
|
+
RET=$?
|
14
|
+
elif [ ${DATABASE} = "postgresql" ]; then
|
15
|
+
bundle exec ./exe/index_shotgun postgresql --database=index_shotgun_test --username=postgres --password=postgres --port=$POSTGRESQL_PORT
|
16
|
+
RET=$?
|
17
|
+
elif [ ${DATABASE} = "sqlite3" ]; then
|
18
|
+
bundle exec ./exe/index_shotgun sqlite3 --database=spec/db/index_shotgun_test.db
|
19
|
+
RET=$?
|
20
|
+
elif [ ${DATABASE} = "oracle" ]; then
|
21
|
+
bundle exec ./exe/index_shotgun oracle --database=xe --username=system --password=oracle --port=$ORACLE_PORT
|
22
|
+
RET=$?
|
23
|
+
fi
|
24
|
+
|
25
|
+
set -e
|
26
|
+
#########################
|
27
|
+
|
28
|
+
if [ $RET -ne 1 ]; then
|
29
|
+
echo "Expect exit code is 1, but actual is ${RET}"
|
30
|
+
exit 1
|
31
|
+
fi
|
File without changes
|
data/ci/install.sh
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
#!/bin/bash -xe
|
2
|
+
|
3
|
+
gem install bundler --no-document -v 1.17.3 || true
|
4
|
+
|
5
|
+
if [ "${DATABASE}" = "mysql" ]; then
|
6
|
+
sudo apt-get update
|
7
|
+
sudo apt-get install -y libmysqlclient-dev
|
8
|
+
|
9
|
+
export BUNDLE_WITHOUT="postgresql sqlite3 oracle"
|
10
|
+
|
11
|
+
elif [ "${DATABASE}" = "postgresql" ]; then
|
12
|
+
sudo apt-get update
|
13
|
+
sudo apt-get install -y libpq-dev
|
14
|
+
|
15
|
+
export BUNDLE_WITHOUT="mysql sqlite3 oracle"
|
16
|
+
|
17
|
+
elif [ "${DATABASE}" = "sqlite3" ]; then
|
18
|
+
sudo apt-get update
|
19
|
+
sudo apt-get install -y libsqlite3-dev
|
20
|
+
|
21
|
+
export BUNDLE_WITHOUT="mysql postgresql oracle"
|
22
|
+
|
23
|
+
elif [ "${DATABASE}" = "oracle" ]; then
|
24
|
+
# c.f. https://github.com/kubo/ruby-oci8/blob/ruby-oci8-2.2.7/docs/install-instant-client.md#install-oracle-instant-client-packages
|
25
|
+
mkdir -p /opt/oracle
|
26
|
+
pushd /opt/oracle
|
27
|
+
|
28
|
+
wget https://download.oracle.com/otn_software/linux/instantclient/193000/instantclient-basiclite-linux.x64-19.3.0.0.0dbru.zip
|
29
|
+
wget https://download.oracle.com/otn_software/linux/instantclient/193000/instantclient-sdk-linux.x64-19.3.0.0.0dbru.zip
|
30
|
+
|
31
|
+
unzip instantclient-basiclite-linux.x64-19.3.0.0.0dbru.zip
|
32
|
+
unzip instantclient-sdk-linux.x64-19.3.0.0.0dbru.zip
|
33
|
+
|
34
|
+
sudo apt-get update
|
35
|
+
sudo apt-get install -y libaio1
|
36
|
+
|
37
|
+
popd
|
38
|
+
|
39
|
+
export BUNDLE_WITHOUT="mysql postgresql sqlite3"
|
40
|
+
|
41
|
+
else
|
42
|
+
export BUNDLE_WITHOUT="mysql postgresql sqlite3 oracle"
|
43
|
+
|
44
|
+
fi
|
45
|
+
|
46
|
+
bundle config set --local path "vendor/bundle/"
|
47
|
+
bundle install --jobs $(nproc) --retry 3
|
data/exe/index_shotgun
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
gem "activerecord", "~> 5.0.7"
|
4
|
+
|
5
|
+
group :postgresql do
|
6
|
+
# https://github.com/rails/rails/blob/v5.0.7/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb#L2
|
7
|
+
gem "pg", ">= 0.18", "< 2.0"
|
8
|
+
end
|
9
|
+
|
10
|
+
group :mysql do
|
11
|
+
# https://github.com/rails/rails/blob/v5.0.7/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb#L4
|
12
|
+
gem "mysql2", ">= 0.4.4", "< 0.6.0"
|
13
|
+
end
|
14
|
+
|
15
|
+
group :oracle do
|
16
|
+
gem "activerecord-oracle_enhanced-adapter", "~> 1.7.11"
|
17
|
+
gem "ruby-oci8"
|
18
|
+
end
|
19
|
+
|
20
|
+
group :sqlite3 do
|
21
|
+
gem "sqlite3", "~> 1.3.6"
|
22
|
+
end
|
23
|
+
|
24
|
+
eval_gemfile "#{__dir__}/common.gemfile"
|
25
|
+
|
26
|
+
gemspec path: "../"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
gem "activerecord", "~> 5.1.6"
|
4
|
+
|
5
|
+
group :postgresql do
|
6
|
+
# https://github.com/rails/rails/blob/v5.1.6/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb#L2
|
7
|
+
gem "pg", ">= 0.18", "< 2.0"
|
8
|
+
end
|
9
|
+
|
10
|
+
group :mysql do
|
11
|
+
# https://github.com/rails/rails/blob/v5.1.6/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb#L4-L6
|
12
|
+
gem "mysql2", ">= 0.4.4", "< 0.6.0"
|
13
|
+
end
|
14
|
+
|
15
|
+
group :oracle do
|
16
|
+
gem "activerecord-oracle_enhanced-adapter", "~> 1.8.2"
|
17
|
+
gem "ruby-oci8"
|
18
|
+
end
|
19
|
+
|
20
|
+
group :sqlite3 do
|
21
|
+
gem "sqlite3", "~> 1.3.6"
|
22
|
+
end
|
23
|
+
|
24
|
+
eval_gemfile "#{__dir__}/common.gemfile"
|
25
|
+
|
26
|
+
gemspec path: "../"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
gem "activerecord", "~> 5.2.0"
|
4
|
+
|
5
|
+
group :postgresql do
|
6
|
+
# https://github.com/rails/rails/blob/v5.2.0/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb#L4
|
7
|
+
gem "pg", ">= 0.18", "< 2.0"
|
8
|
+
end
|
9
|
+
|
10
|
+
group :mysql do
|
11
|
+
# https://github.com/rails/rails/blob/v5.2.0/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb#L6
|
12
|
+
gem "mysql2", ">= 0.4.4", "< 0.6.0"
|
13
|
+
end
|
14
|
+
|
15
|
+
group :oracle do
|
16
|
+
gem "activerecord-oracle_enhanced-adapter", "~> 5.2.3"
|
17
|
+
gem "ruby-oci8"
|
18
|
+
end
|
19
|
+
|
20
|
+
group :sqlite3 do
|
21
|
+
gem "sqlite3", "~> 1.3.6"
|
22
|
+
end
|
23
|
+
|
24
|
+
eval_gemfile "#{__dir__}/common.gemfile"
|
25
|
+
|
26
|
+
gemspec path: "../"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
gem "activerecord", "~> 6.0.0"
|
4
|
+
|
5
|
+
group :postgresql do
|
6
|
+
# c.f. https://github.com/rails/rails/blob/v6.0.0.rc1/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb#L4
|
7
|
+
gem "pg", ">= 0.18", "< 2.0"
|
8
|
+
end
|
9
|
+
|
10
|
+
group :mysql do
|
11
|
+
# c.f. https://github.com/rails/rails/blob/v6.0.0.rc1/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb#L6
|
12
|
+
gem "mysql2", ">= 0.4.4"
|
13
|
+
end
|
14
|
+
|
15
|
+
group :oracle do
|
16
|
+
gem "activerecord-oracle_enhanced-adapter", "~> 6.0.0"
|
17
|
+
gem "ruby-oci8"
|
18
|
+
end
|
19
|
+
|
20
|
+
group :sqlite3 do
|
21
|
+
# c.f. https://github.com/rails/rails/blob/v6.0.0.rc1/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb#L13
|
22
|
+
gem "sqlite3", "~> 1.4"
|
23
|
+
end
|
24
|
+
|
25
|
+
eval_gemfile "#{__dir__}/common.gemfile"
|
26
|
+
|
27
|
+
gemspec path: "../"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
gem "activerecord", "~> 6.1.0"
|
4
|
+
|
5
|
+
group :postgresql do
|
6
|
+
# c.f. https://github.com/rails/rails/blob/v6.1.0/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb#L3
|
7
|
+
gem "pg", "~> 1.1"
|
8
|
+
end
|
9
|
+
|
10
|
+
group :mysql do
|
11
|
+
# c.f. https://github.com/rails/rails/blob/v6.1.0/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb#L6
|
12
|
+
gem "mysql2", "~> 0.5"
|
13
|
+
end
|
14
|
+
|
15
|
+
group :oracle do
|
16
|
+
gem "activerecord-oracle_enhanced-adapter", "~> 6.1.2"
|
17
|
+
gem "ruby-oci8"
|
18
|
+
end
|
19
|
+
|
20
|
+
group :sqlite3 do
|
21
|
+
# c.f. https://github.com/rails/rails/blob/v6.1.0/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb#L13
|
22
|
+
gem "sqlite3", "~> 1.4"
|
23
|
+
end
|
24
|
+
|
25
|
+
eval_gemfile "#{__dir__}/common.gemfile"
|
26
|
+
|
27
|
+
gemspec path: "../"
|
@@ -0,0 +1,29 @@
|
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
gem "activerecord", "~> 7.0.0.alpha2"
|
4
|
+
|
5
|
+
group :postgresql do
|
6
|
+
# c.f. https://github.com/rails/rails/blob/v7.0.0.alpha2/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb#L3
|
7
|
+
gem "pg", "~> 1.1"
|
8
|
+
end
|
9
|
+
|
10
|
+
group :mysql do
|
11
|
+
# c.f. https://github.com/rails/rails/blob/v7.0.0.alpha2/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb#L6
|
12
|
+
gem "mysql2", "~> 0.5"
|
13
|
+
end
|
14
|
+
|
15
|
+
group :oracle do
|
16
|
+
# TODO: Enable this after activerecord-oracle_enhanced-adapter supports activerecord v7
|
17
|
+
# gem "activerecord-oracle_enhanced-adapter", "~> 6.1.2"
|
18
|
+
|
19
|
+
gem "ruby-oci8"
|
20
|
+
end
|
21
|
+
|
22
|
+
group :sqlite3 do
|
23
|
+
# c.f. https://github.com/rails/rails/blob/v7.0.0.alpha2/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb#L13
|
24
|
+
gem "sqlite3", "~> 1.4"
|
25
|
+
end
|
26
|
+
|
27
|
+
eval_gemfile "#{__dir__}/common.gemfile"
|
28
|
+
|
29
|
+
gemspec path: "../"
|