gem "annotate"
gem "better_errors"
gem "binding_of_caller"
+ gem "debug_inspector", "< 1.0.0"
gem "listen"
gem "vendorer"
end
rexml
crass (1.0.6)
dalli (2.7.11)
- debug_inspector (1.0.0)
+ debug_inspector (0.0.3)
deep_merge (1.2.1)
delayed_job (4.1.9)
activesupport (>= 3.0, < 6.2)
composite_primary_keys (~> 12.0.0)
config
dalli
+ debug_inspector (< 1.0.0)
delayed_job_active_record
dynamic_form
erb_lint
# Custom directories with classes and modules you want to be autoloadable.
config.autoload_paths += %W[#{config.root}/lib]
- # Continue to use the classic autoloader for now
- config.autoloader = :classic
-
# Force requests from old versions of IE (<= IE8) to be UTF-8 encoded.
# This has defaulted to false since rails 6.0
config.action_view.default_enforce_utf8 = true
--- /dev/null
+if defined?(ActiveRecord::ConnectionAdapters::AbstractAdapter)
+ module OpenStreetMap
+ module ActiveRecord
+ module AbstractAdapter
+ def add_index_options(table_name, column_name, options = {})
+ columns = options.delete(:columns)
+ index_name, index_type, index_columns, index_options, algorithm, using = super(table_name, column_name, options)
+ [index_name, index_type, columns || index_columns, index_options, algorithm, using]
+ end
+ end
+
+ module PostgreSQLAdapter
+ def quote_column_name(name)
+ Array(name).map { |n| super(n) }.join(", ")
+ end
+
+ def add_primary_key(table_name, column_name, _options = {})
+ table_name = quote_table_name(table_name)
+ column_name = quote_column_name(column_name)
+
+ execute "ALTER TABLE #{table_name} ADD PRIMARY KEY (#{column_name})"
+ end
+
+ def remove_primary_key(table_name)
+ table_name = quote_table_name(table_name)
+
+ execute "ALTER TABLE #{table_name} DROP PRIMARY KEY"
+ end
+
+ def alter_primary_key(table_name, new_columns)
+ constraint_name = quote_table_name("#{table_name}_pkey")
+ table_name = quote_table_name(table_name)
+ new_columns = quote_column_name(new_columns)
+
+ execute "ALTER TABLE #{table_name} DROP CONSTRAINT #{constraint_name}"
+ execute "ALTER TABLE #{table_name} ADD PRIMARY KEY (#{new_columns})"
+ end
+
+ def create_enumeration(enumeration_name, values)
+ execute "CREATE TYPE #{enumeration_name} AS ENUM ('#{values.join '\',\''}')"
+ end
+
+ def drop_enumeration(enumeration_name)
+ execute "DROP TYPE #{enumeration_name}"
+ end
+
+ def rename_enumeration(old_name, new_name)
+ old_name = quote_table_name(old_name)
+ new_name = quote_table_name(new_name)
+
+ execute "ALTER TYPE #{old_name} RENAME TO #{new_name}"
+ end
+ end
+ end
+ end
+
+ ActiveRecord::ConnectionAdapters::AbstractAdapter.prepend(OpenStreetMap::ActiveRecord::AbstractAdapter)
+ ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.prepend(OpenStreetMap::ActiveRecord::PostgreSQLAdapter)
+end
--- /dev/null
+Rails.autoloaders.each do |autoloader|
+ autoloader.inflector.inflect(
+ "gpx" => "GPX",
+ "id" => "ID",
+ "osm" => "OSM",
+ "rubyvm" => "RubyVM",
+ "utf8" => "UTF8"
+ )
+end
-require "migrate"
-
class CreateOsmDb < ActiveRecord::Migration[4.2]
def self.up
create_table "current_nodes", :id => false do |t|
-require "migrate"
-
class CleanupOsmDb < ActiveRecord::Migration[4.2]
def self.up
change_column "current_nodes", "latitude", :float, :limit => 53, :null => false
-require "migrate"
-
class SqlSessionStoreSetup < ActiveRecord::Migration[4.2]
def self.up
create_table "sessions" do |t|
-require "migrate"
-
class UserEnhancements < ActiveRecord::Migration[4.2]
def self.up
add_column "diary_entries", "latitude", :float, :limit => 53
-require "migrate"
-
class TileTracepoints < ActiveRecord::Migration[4.2]
class Tracepoint < ApplicationRecord
self.table_name = "gps_points"
-require "migrate"
-
class TileNodes < ActiveRecord::Migration[4.2]
class Node < ApplicationRecord
self.table_name = "current_nodes"
-require "migrate"
-
class AddRelations < ActiveRecord::Migration[4.2]
def self.up
# enums work like strings but are more efficient
-require "migrate"
-
class RemoveSegments < ActiveRecord::Migration[4.2]
def self.up
have_segs = select_value("SELECT count(*) FROM current_segments").to_i.nonzero?
-require "migrate"
-
class DiaryComments < ActiveRecord::Migration[4.2]
def self.up
create_table "diary_comments", :id => false do |t|
-require "migrate"
-
class CreateAcls < ActiveRecord::Migration[4.2]
def self.up
create_table "acls", :id => false do |t|
-require "migrate"
-
class PopulateNodeTagsAndRemove < ActiveRecord::Migration[4.2]
def self.up
have_nodes = select_value("SELECT count(*) FROM current_nodes").to_i.nonzero?
-require "migrate"
-
class MoveToInnodb < ActiveRecord::Migration[4.2]
@conv_tables = %w[nodes ways way_tags way_nodes current_way_tags relation_members relations relation_tags current_relation_tags]
-require "migrate"
-
class KeyConstraints < ActiveRecord::Migration[4.2]
def self.up
# Primary keys
-require "migrate"
-
class AddChangesets < ActiveRecord::Migration[4.2]
@conv_user_tables = %w[current_nodes current_relations current_ways nodes relations ways]
-require "migrate"
-
class OrderRelationMembers < ActiveRecord::Migration[4.2]
def self.up
# add sequence column. rails won't let us define an ordering here,
-require "migrate"
-
class AddEndTimeToChangesets < ActiveRecord::Migration[4.2]
def self.up
# swap the boolean closed-or-not for a time when the changeset will
-require "migrate"
-
class AddMoreChangesetIndexes < ActiveRecord::Migration[4.2]
def self.up
add_index "changesets", ["created_at"], :name => "changesets_created_at_idx"
-require "migrate"
-
class AddUserForeignKeys < ActiveRecord::Migration[4.2]
def change
add_foreign_key :changesets, :users, :name => "changesets_user_id_fkey"
-require "migrate"
-
class AddForeignKeys < ActiveRecord::Migration[4.2]
def self.up
add_foreign_key :changeset_tags, :changesets, :column => :id, :name => "changeset_tags_id_fkey"
-require "migrate"
require "rexml/document"
class CreateCountries < ActiveRecord::Migration[4.2]
-require "migrate"
-
class CreateLanguages < ActiveRecord::Migration[4.2]
def change
create_table :languages, :id => false do |t|
-require "migrate"
-
class ChangeUserLocale < ActiveRecord::Migration[4.2]
def self.up
remove_foreign_key :users, :column => :locale, :name => "users_locale_fkey"
-require "migrate"
-
class AddMoreControlsToGpxFiles < ActiveRecord::Migration[4.2]
class Trace < ApplicationRecord
self.table_name = "gpx_files"
-require "migrate"
-
class AddForeignKeysToOauthTables < ActiveRecord::Migration[4.2]
def change
add_foreign_key :oauth_tokens, :users, :name => "oauth_tokens_user_id_fkey"
-require "migrate"
-
class CreateUserRoles < ActiveRecord::Migration[4.2]
class User < ApplicationRecord
end
-require "migrate"
-
class CreateUserBlocks < ActiveRecord::Migration[4.2]
def change
create_table :user_blocks do |t|
-require "migrate"
-
class AlterUserRolesAndBlocks < ActiveRecord::Migration[4.2]
class UserRole < ApplicationRecord
end
-require "migrate"
-
class AddStatusToUser < ActiveRecord::Migration[4.2]
class User < ApplicationRecord
end
-require "migrate"
-
class AddMapBugTables < ActiveRecord::Migration[4.2]
def self.up
create_enumeration :map_bug_status_enum, %w[open closed hidden]
-require "migrate"
-
class RefactorMapBugTables < ActiveRecord::Migration[4.2]
def self.up
create_table :map_bug_comment do |t|
-require "migrate"
-
class ChangeMapBugCommentType < ActiveRecord::Migration[4.2]
def self.up
change_column :map_bug_comment, :comment, :text
-require "migrate"
-
class AddDateClosed < ActiveRecord::Migration[4.2]
def self.up
add_column :map_bugs, :date_closed, :timestamp
-require "migrate"
-
class AddMapBugCommentEvent < ActiveRecord::Migration[4.2]
def self.up
create_enumeration :map_bug_event_enum, %w[opened closed reopened commented hidden]
-require "migrate"
-
class RenameBugsToNotes < ActiveRecord::Migration[4.2]
def self.up
rename_enumeration "map_bug_status_enum", "note_status_enum"
-require "migrate"
-
class AddLowercaseUserIndexes < ActiveRecord::Migration[4.2]
def up
add_index :users, [], :columns => "LOWER(display_name)", :name => "users_display_name_lower_idx"
-require "migrate"
-
class AddTextFormat < ActiveRecord::Migration[4.2]
def up
create_enumeration :format_enum, %w[html markdown text]
-require "migrate"
-
class CreateRedactions < ActiveRecord::Migration[4.2]
def change
create_table :redactions do |t|
-require "migrate"
-
class DropSessionTable < ActiveRecord::Migration[4.2]
def up
drop_table "sessions"
-require "migrate"
-
class AddUserAndDescriptionToRedaction < ActiveRecord::Migration[4.2]
def change
add_column :redactions, :user_id, :bigint, :null => false
-require "migrate"
-
class AddTextIndexToNoteComments < ActiveRecord::Migration[4.2]
def up
add_index :note_comments, [], :columns => "to_tsvector('english', body)", :using => "GIN", :name => "index_note_comments_on_body"
-require "migrate"
-
class CreateChangesetComments < ActiveRecord::Migration[4.2]
def change
create_table :changeset_comments do |t|
-require "migrate"
-
class AddJoinTableBetweenUsersAndChangesets < ActiveRecord::Migration[4.2]
def change
create_table :changesets_subscribers, :id => false do |t|
-require "migrate"
-
class CreateIssuesAndReports < ActiveRecord::Migration[5.0]
def up
create_enumeration :issue_status_enum, %w[open ignored resolved]
-require "migrate"
-
class AddJoinTableBetweenUsersAndDiaryEntries < ActiveRecord::Migration[4.2]
def self.up
create_table :diary_entry_subscriptions, :id => false do |t|
+++ /dev/null
-module OpenStreetMap
- module ActiveRecord
- module AbstractAdapter
- def add_index_options(table_name, column_name, options = {})
- columns = options.delete(:columns)
- index_name, index_type, index_columns, index_options, algorithm, using = super(table_name, column_name, options)
- [index_name, index_type, columns || index_columns, index_options, algorithm, using]
- end
- end
-
- module PostgreSQLAdapter
- def quote_column_name(name)
- Array(name).map { |n| super(n) }.join(", ")
- end
-
- def add_primary_key(table_name, column_name, _options = {})
- table_name = quote_table_name(table_name)
- column_name = quote_column_name(column_name)
-
- execute "ALTER TABLE #{table_name} ADD PRIMARY KEY (#{column_name})"
- end
-
- def remove_primary_key(table_name)
- table_name = quote_table_name(table_name)
-
- execute "ALTER TABLE #{table_name} DROP PRIMARY KEY"
- end
-
- def alter_primary_key(table_name, new_columns)
- constraint_name = quote_table_name("#{table_name}_pkey")
- table_name = quote_table_name(table_name)
- new_columns = quote_column_name(new_columns)
-
- execute "ALTER TABLE #{table_name} DROP CONSTRAINT #{constraint_name}"
- execute "ALTER TABLE #{table_name} ADD PRIMARY KEY (#{new_columns})"
- end
-
- def create_enumeration(enumeration_name, values)
- execute "CREATE TYPE #{enumeration_name} AS ENUM ('#{values.join '\',\''}')"
- end
-
- def drop_enumeration(enumeration_name)
- execute "DROP TYPE #{enumeration_name}"
- end
-
- def rename_enumeration(old_name, new_name)
- old_name = quote_table_name(old_name)
- new_name = quote_table_name(new_name)
-
- execute "ALTER TYPE #{old_name} RENAME TO #{new_name}"
- end
- end
- end
-end
-
-ActiveRecord::ConnectionAdapters::AbstractAdapter.prepend(OpenStreetMap::ActiveRecord::AbstractAdapter)
-ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.prepend(OpenStreetMap::ActiveRecord::PostgreSQLAdapter)