Class: Develoz::Generators::DatabaseGenerator

Inherits:
Base
  • Object
show all
Defined in:
lib/generators/develoz/database/database_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#add_gem, #app_class, #app_name, #append_env, #apply_template, #ensure_gitignore, #inject_once, #insert_route, #migration_exists?, next_migration_timestamp

Class Method Details

.source_rootObject



8
9
10
# File 'lib/generators/develoz/database/database_generator.rb', line 8

def self.source_root
  File.expand_path("templates", __dir__)
end

Instance Method Details

#add_database_gemsObject



12
13
14
15
# File 'lib/generators/develoz/database/database_generator.rb', line 12

def add_database_gems
  add_gem "pg"
  add_gem "pg_search"
end

#create_database_configObject



17
18
19
# File 'lib/generators/develoz/database/database_generator.rb', line 17

def create_database_config
  template "config/database.yml.tt", "config/database.yml"
end

#create_pg_extensions_migrationObject



25
26
27
28
29
30
# File 'lib/generators/develoz/database/database_generator.rb', line 25

def create_pg_extensions_migration
  return if migration_exists?("create_pg_extensions")

  template "db/migrate/create_pg_extensions.rb.tt",
           "db/migrate/#{next_migration_timestamp}_create_pg_extensions.rb"
end

#create_pg_search_initializerObject



21
22
23
# File 'lib/generators/develoz/database/database_generator.rb', line 21

def create_pg_search_initializer
  template "config/initializers/pg_search.rb.tt", "config/initializers/pg_search.rb"
end

#ensure_postgres_tool_versionObject



32
33
34
35
36
37
38
39
40
41
# File 'lib/generators/develoz/database/database_generator.rb', line 32

def ensure_postgres_tool_version
  tool_versions = ".tool-versions"
  path = File.join(destination_root, tool_versions)

  if File.exist?(path)
    inject_once(into: tool_versions, content: "postgres 18")
  else
    create_file(tool_versions, "postgres 18\n")
  end
end