Module: AfterMigrate::Sqlite
- Extended by:
- Sql
- Defined in:
- lib/after_migrate/adapters/sqlite.rb
Constant Summary
Constants included
from Sql
AfterMigrate::Sql::IDENT, AfterMigrate::Sql::PATTERNS
Class Method Summary
collapse
Methods included from Sql
parse_tables
Class Method Details
.all_tables ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/after_migrate/adapters/sqlite.rb', line 21
def all_tables(**)
ActiveRecord::Base.connection.select_values(<<~SQL.squish)
SELECT name
FROM sqlite_master
WHERE type = 'table'
AND name NOT LIKE 'sqlite_%'
AND name NOT IN ('ar_internal_metadata', 'schema_migrations')
ORDER BY name
SQL
end
|
.optimize_tables(connection:) ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
|
# File 'lib/after_migrate/adapters/sqlite.rb', line 9
def optimize_tables(connection:, **)
version = connection.respond_to?(:sqlite_version) ? connection.sqlite_version : '0'
if Gem::Version.new(version.split.first || '0') >= Gem::Version.new('3.35.0')
AfterMigrate.log('Running PRAGMA optimize')
connection.execute('PRAGMA optimize;')
else
AfterMigrate.log('Running VACUUM; ANALYZE;')
connection.execute('VACUUM;')
connection.execute('ANALYZE;')
end
end
|