migration_comments 0.3.2 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/.travis.yml +27 -0
- data/README.rdoc +12 -3
- data/Rakefile +24 -0
- data/docker-compose.yml +12 -0
- data/gemfiles/rails4.gemfile +4 -0
- data/gemfiles/rails5.gemfile +4 -0
- data/lib/migration_comments.rb +12 -40
- data/lib/migration_comments/active_record/connection_adapters/abstract_adapter.rb +1 -10
- data/lib/migration_comments/active_record/connection_adapters/abstract_adapter/schema_creation.rb +22 -25
- data/lib/migration_comments/active_record/connection_adapters/alter_table.rb +5 -10
- data/lib/migration_comments/active_record/connection_adapters/column.rb +1 -5
- data/lib/migration_comments/active_record/connection_adapters/comment_definition.rb +1 -9
- data/lib/migration_comments/active_record/connection_adapters/mysql2_adapter.rb +97 -3
- data/lib/migration_comments/active_record/connection_adapters/postgresql_adapter.rb +19 -22
- data/lib/migration_comments/active_record/connection_adapters/sqlite3_adapter.rb +73 -46
- data/lib/migration_comments/active_record/connection_adapters/table.rb +3 -3
- data/lib/migration_comments/active_record/connection_adapters/table_definition.rb +9 -18
- data/lib/migration_comments/active_record/schema_dumper.rb +6 -10
- data/lib/migration_comments/annotate_models.rb +6 -8
- data/lib/migration_comments/schema_formatter.rb +8 -1
- data/lib/migration_comments/version.rb +1 -1
- data/migration_comments.gemspec +3 -10
- data/test/add_comments_test.rb +43 -2
- data/test/annotate_models_test.rb +6 -4
- data/test/auto_increment_test.rb +39 -9
- data/test/config/database.yml +2 -2
- data/test/primary_uuid_test.rb +27 -0
- data/test/schema_dumper_test.rb +35 -11
- data/test/test_helper.rb +8 -1
- metadata +34 -11
- data/lib/migration_comments/active_record/connection_adapters/abstract_sqlite_adapter.rb +0 -85
- data/lib/migration_comments/active_record/connection_adapters/mysql_adapter.rb +0 -107
- data/lib/migration_comments/active_record/connection_adapters/sqlite_adapter.rb +0 -71
@@ -6,7 +6,7 @@ class Sample < ActiveRecord::Base
|
|
6
6
|
self.table_name = 'sample'
|
7
7
|
end
|
8
8
|
|
9
|
-
class AnnotateModelsTest < Minitest::
|
9
|
+
class AnnotateModelsTest < Minitest::Test
|
10
10
|
include TestHelper
|
11
11
|
|
12
12
|
TEST_PREFIX = "== Schema Information"
|
@@ -19,17 +19,19 @@ class AnnotateModelsTest < Minitest::Unit::TestCase
|
|
19
19
|
end
|
20
20
|
|
21
21
|
result = AnnotateModels.get_schema_info(Sample, TEST_PREFIX)
|
22
|
+
|
23
|
+
string_token = ENV['DB'] == 'mysql' ? ':string(255)' : ':string '
|
24
|
+
|
22
25
|
expected = <<EOS
|
23
26
|
# #{TEST_PREFIX}
|
24
27
|
#
|
25
28
|
# Table name: sample # a table comment
|
26
29
|
#
|
27
30
|
# id :integer not null, primary key
|
28
|
-
# field1
|
31
|
+
# field1 #{string_token} # a "comment" \\ that ' needs; escaping''
|
29
32
|
# field2 :integer
|
30
|
-
# field3
|
33
|
+
# field3 #{string_token} default(""), not null # third column comment
|
31
34
|
#
|
32
|
-
|
33
35
|
EOS
|
34
36
|
assert_equal expected, result
|
35
37
|
end
|
data/test/auto_increment_test.rb
CHANGED
@@ -4,14 +4,14 @@ class Sample < ActiveRecord::Base
|
|
4
4
|
self.table_name = 'sample'
|
5
5
|
end
|
6
6
|
|
7
|
-
class AutoIncrementTest < Minitest::
|
7
|
+
class AutoIncrementTest < Minitest::Test
|
8
8
|
include TestHelper
|
9
9
|
|
10
10
|
def test_basic_table_creation
|
11
11
|
assert_auto_increments
|
12
12
|
end
|
13
13
|
|
14
|
-
def
|
14
|
+
def test_modified_primary_key_with_auto_increment
|
15
15
|
comment_text = "a comment on the sample table in the primary_key field"
|
16
16
|
result_comment = nil
|
17
17
|
ActiveRecord::Schema.define do
|
@@ -22,16 +22,38 @@ class AutoIncrementTest < Minitest::Unit::TestCase
|
|
22
22
|
assert_equal comment_text, result_comment
|
23
23
|
end
|
24
24
|
|
25
|
+
def test_modified_primary_key_without_auto_increment
|
26
|
+
comment_text = "a comment on the sample table in the primary_key field"
|
27
|
+
result_comment = nil
|
28
|
+
ActiveRecord::Schema.define do
|
29
|
+
change_column :sample, :id, :integer, auto_increment: false
|
30
|
+
set_column_comment :sample, :id, comment_text
|
31
|
+
result_comment = retrieve_column_comment :sample, :id
|
32
|
+
end
|
33
|
+
assert_does_not_auto_increment
|
34
|
+
assert_equal comment_text, result_comment
|
35
|
+
end
|
36
|
+
|
25
37
|
private
|
38
|
+
|
39
|
+
def assert_does_not_auto_increment
|
40
|
+
if ENV['DB'] == 'mysql'
|
41
|
+
extra = extract_extra_attributes('id')
|
42
|
+
refute_match(/auto_increment/i, extra)
|
43
|
+
end
|
44
|
+
|
45
|
+
id = nil
|
46
|
+
ActiveRecord::Base.connection.instance_eval do
|
47
|
+
execute "INSERT INTO #{quote_table_name :sample} (#{quote_column_name :id}, #{quote_column_name :field1}, #{quote_column_name :field2}) VALUES (15, 'text3', 11)"
|
48
|
+
id = select_value("SELECT #{quote_column_name :id} FROM #{quote_table_name :sample}").to_i
|
49
|
+
end
|
50
|
+
assert_equal 15, id
|
51
|
+
end
|
52
|
+
|
26
53
|
def assert_auto_increments
|
27
54
|
if ENV['DB'] == 'mysql'
|
28
|
-
extra =
|
29
|
-
|
30
|
-
execute_and_free("SHOW FULL FIELDS FROM #{quote_table_name :sample}") do |result|
|
31
|
-
extra = each_hash(result).detect{|field| field[:Field] == 'id'}[:Extra]
|
32
|
-
end
|
33
|
-
end
|
34
|
-
assert_match /auto_increment/i, extra
|
55
|
+
extra = extract_extra_attributes('id')
|
56
|
+
assert_match(/auto_increment/i, extra)
|
35
57
|
end
|
36
58
|
|
37
59
|
ids = []
|
@@ -45,4 +67,12 @@ class AutoIncrementTest < Minitest::Unit::TestCase
|
|
45
67
|
|
46
68
|
assert_equal Sample.count, 3
|
47
69
|
end
|
70
|
+
|
71
|
+
def extract_extra_attributes(field_name)
|
72
|
+
ActiveRecord::Base.connection.instance_eval do
|
73
|
+
execute_and_free("SHOW FULL FIELDS FROM #{quote_table_name :sample}") do |result|
|
74
|
+
each_hash(result).detect{|field| field[:Field] == field_name}[:Extra]
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
48
78
|
end
|
data/test/config/database.yml
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
|
3
|
+
class PrimaryUuidTest < Minitest::Test
|
4
|
+
include TestHelper
|
5
|
+
|
6
|
+
class Sample2 < ActiveRecord::Base
|
7
|
+
self.table_name = 'sample2'
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_rails_4_uuid
|
11
|
+
return unless ENV['DB'] == 'postgres'
|
12
|
+
uuid = nil
|
13
|
+
ActiveRecord::Schema.define do
|
14
|
+
begin
|
15
|
+
enable_extension 'uuid-ossp'
|
16
|
+
create_table :sample2, id: :uuid do |t|
|
17
|
+
t.integer :field1
|
18
|
+
t.string :field2
|
19
|
+
end
|
20
|
+
uuid = Sample2.create(field1: 1, field2: 'foo').id
|
21
|
+
ensure
|
22
|
+
drop_table :sample2 rescue nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
assert_match /[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}/i, uuid
|
26
|
+
end
|
27
|
+
end
|
data/test/schema_dumper_test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
2
|
|
3
|
-
class SchemaDumperTest < Minitest::
|
3
|
+
class SchemaDumperTest < Minitest::Test
|
4
4
|
include TestHelper
|
5
5
|
include MigrationComments::SchemaFormatter
|
6
6
|
|
@@ -14,14 +14,32 @@ class SchemaDumperTest < Minitest::Unit::TestCase
|
|
14
14
|
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, dest)
|
15
15
|
dest.rewind
|
16
16
|
result = dest.read
|
17
|
-
expected =
|
18
|
-
|
19
|
-
|
17
|
+
expected = if ENV['DB'] == 'mysql' && ::ActiveRecord::VERSION::MAJOR >= 5
|
18
|
+
<<-EOS
|
19
|
+
create_table "sample", force: :cascade, options: __OPTIONS__, comment: "a table comment" do |t|
|
20
|
+
t.string "field1", #{render_kv_pair(:comment, %{a \"comment\" \\ that ' needs; escaping''})}
|
20
21
|
t.integer "field2"
|
21
22
|
t.string "field3", #{render_kv_pair(:default, "")}, #{render_kv_pair(:null, false)}, #{render_kv_pair(:comment, "third column comment")}
|
22
23
|
end
|
23
|
-
EOS
|
24
|
-
|
24
|
+
EOS
|
25
|
+
elsif ENV['DB'] == 'mysql'
|
26
|
+
<<-EOS
|
27
|
+
create_table "sample", force: :cascade, comment: "a table comment" do |t|
|
28
|
+
t.string "field1", #{render_kv_pair(:limit, 255)}, #{render_kv_pair(:comment, %{a \"comment\" \\ that ' needs; escaping''})}
|
29
|
+
t.integer "field2", #{render_kv_pair(:limit, 4)}
|
30
|
+
t.string "field3", #{render_kv_pair(:limit, 255)}, #{render_kv_pair(:default, "")}, #{render_kv_pair(:null, false)}, #{render_kv_pair(:comment, "third column comment")}
|
31
|
+
end
|
32
|
+
EOS
|
33
|
+
else
|
34
|
+
<<-EOS
|
35
|
+
create_table "sample", force: :cascade, comment: "a table comment" do |t|
|
36
|
+
t.string "field1", #{render_kv_pair(:comment, %{a \"comment\" \\ that ' needs; escaping''})}
|
37
|
+
t.integer "field2"
|
38
|
+
t.string "field3", #{render_kv_pair(:default, "")}, #{render_kv_pair(:null, false)}, #{render_kv_pair(:comment, "third column comment")}
|
39
|
+
end
|
40
|
+
EOS
|
41
|
+
end
|
42
|
+
assert_match(/#{Regexp.escape(expected).gsub(/__OPTIONS__/, %Q("ENGINE=InnoDB[^"]*"))}/, result)
|
25
43
|
end
|
26
44
|
|
27
45
|
def test_dump_with_no_columns
|
@@ -34,12 +52,18 @@ EOS
|
|
34
52
|
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, dest)
|
35
53
|
dest.rewind
|
36
54
|
result = dest.read
|
37
|
-
expected =
|
38
|
-
|
55
|
+
expected = if ENV['DB'] == 'mysql' && ::ActiveRecord::VERSION::MAJOR >= 5
|
56
|
+
<<-EOS
|
57
|
+
create_table "sample", force: :cascade, options: __OPTIONS__, comment: "a table comment" do |t|
|
58
|
+
EOS
|
59
|
+
else
|
60
|
+
<<-EOS
|
61
|
+
create_table "sample", force: :cascade, comment: "a table comment" do |t|
|
39
62
|
end
|
40
|
-
EOS
|
63
|
+
EOS
|
64
|
+
end
|
41
65
|
|
42
|
-
assert_match
|
66
|
+
assert_match(/#{Regexp.escape(expected).gsub(/__OPTIONS__/, %Q("ENGINE=InnoDB[^"]*"))}/, result)
|
43
67
|
end
|
44
68
|
|
45
69
|
def test_schema_dump_with_custom_type_error_for_pg
|
@@ -62,6 +86,6 @@ EOS
|
|
62
86
|
# Unknown type 'my_custom_type' for column 'field2'
|
63
87
|
EOS
|
64
88
|
|
65
|
-
assert_match
|
89
|
+
assert_match(/#{Regexp.escape expected}/, result)
|
66
90
|
end
|
67
91
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'minitest/autorun'
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
|
-
gem 'activerecord', '>= 2.
|
4
|
+
gem 'activerecord', '>= 4.2.0'
|
5
5
|
require 'active_record'
|
6
6
|
require 'yaml'
|
7
7
|
|
@@ -9,6 +9,13 @@ CONFIGURATIONS = YAML::load(IO.read(File.join(File.dirname(__FILE__), 'config/da
|
|
9
9
|
|
10
10
|
ENV['DB'] ||= 'postgres' # override as needed
|
11
11
|
|
12
|
+
if ENV['DEBUG']
|
13
|
+
require 'minitest/byebug'
|
14
|
+
else
|
15
|
+
ActiveRecord::Migration.verbose = false
|
16
|
+
$VERBOSE=false
|
17
|
+
end
|
18
|
+
|
12
19
|
ActiveRecord::Base.establish_connection(CONFIGURATIONS[ENV['DB']])
|
13
20
|
|
14
21
|
$LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: migration_comments
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pinny
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.
|
19
|
+
version: 4.2.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.
|
26
|
+
version: 4.2.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: annotate
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.
|
33
|
+
version: 2.7.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.
|
40
|
+
version: 2.7.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: pg
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: minitest-byebug
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
description: Add schema comments in your migrations, see them in model annotations
|
84
98
|
and db/schema.rb dump
|
85
99
|
email:
|
@@ -89,23 +103,24 @@ extensions: []
|
|
89
103
|
extra_rdoc_files: []
|
90
104
|
files:
|
91
105
|
- ".gitignore"
|
106
|
+
- ".travis.yml"
|
92
107
|
- Gemfile
|
93
108
|
- MIT-LICENSE
|
94
109
|
- README.rdoc
|
95
110
|
- Rakefile
|
111
|
+
- docker-compose.yml
|
112
|
+
- gemfiles/rails4.gemfile
|
113
|
+
- gemfiles/rails5.gemfile
|
96
114
|
- lib/migration_comments.rb
|
97
115
|
- lib/migration_comments/active_record/connection_adapters/abstract_adapter.rb
|
98
116
|
- lib/migration_comments/active_record/connection_adapters/abstract_adapter/schema_creation.rb
|
99
|
-
- lib/migration_comments/active_record/connection_adapters/abstract_sqlite_adapter.rb
|
100
117
|
- lib/migration_comments/active_record/connection_adapters/alter_table.rb
|
101
118
|
- lib/migration_comments/active_record/connection_adapters/column.rb
|
102
119
|
- lib/migration_comments/active_record/connection_adapters/column_definition.rb
|
103
120
|
- lib/migration_comments/active_record/connection_adapters/comment_definition.rb
|
104
121
|
- lib/migration_comments/active_record/connection_adapters/mysql2_adapter.rb
|
105
|
-
- lib/migration_comments/active_record/connection_adapters/mysql_adapter.rb
|
106
122
|
- lib/migration_comments/active_record/connection_adapters/postgresql_adapter.rb
|
107
123
|
- lib/migration_comments/active_record/connection_adapters/sqlite3_adapter.rb
|
108
|
-
- lib/migration_comments/active_record/connection_adapters/sqlite_adapter.rb
|
109
124
|
- lib/migration_comments/active_record/connection_adapters/table.rb
|
110
125
|
- lib/migration_comments/active_record/connection_adapters/table_definition.rb
|
111
126
|
- lib/migration_comments/active_record/schema_dumper.rb
|
@@ -117,6 +132,7 @@ files:
|
|
117
132
|
- test/annotate_models_test.rb
|
118
133
|
- test/auto_increment_test.rb
|
119
134
|
- test/config/database.yml
|
135
|
+
- test/primary_uuid_test.rb
|
120
136
|
- test/schema_dumper_test.rb
|
121
137
|
- test/test_helper.rb
|
122
138
|
homepage: https://github.com/pinnymz/migration_comments
|
@@ -138,8 +154,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
154
|
version: '0'
|
139
155
|
requirements: []
|
140
156
|
rubyforge_project: migration_comments
|
141
|
-
rubygems_version: 2.
|
157
|
+
rubygems_version: 2.4.5.1
|
142
158
|
signing_key:
|
143
159
|
specification_version: 4
|
144
160
|
summary: Comments for your migrations
|
145
|
-
test_files:
|
161
|
+
test_files:
|
162
|
+
- test/add_comments_test.rb
|
163
|
+
- test/annotate_models_test.rb
|
164
|
+
- test/auto_increment_test.rb
|
165
|
+
- test/config/database.yml
|
166
|
+
- test/primary_uuid_test.rb
|
167
|
+
- test/schema_dumper_test.rb
|
168
|
+
- test/test_helper.rb
|
@@ -1,85 +0,0 @@
|
|
1
|
-
module MigrationComments::ActiveRecord::ConnectionAdapters
|
2
|
-
module AbstractSQLiteAdapter
|
3
|
-
def comments_supported?
|
4
|
-
true
|
5
|
-
end
|
6
|
-
|
7
|
-
def inline_comments?
|
8
|
-
true
|
9
|
-
end
|
10
|
-
|
11
|
-
def set_table_comment(table_name, comment_text)
|
12
|
-
alter_table(table_name, :comment => comment_text)
|
13
|
-
end
|
14
|
-
|
15
|
-
def set_column_comment(table_name, column_name, comment_text)
|
16
|
-
sql_type = primary_key(table_name) == column_name.to_s ?
|
17
|
-
:primary_key :
|
18
|
-
column_for(table_name, column_name).sql_type
|
19
|
-
change_column table_name, column_name, sql_type, :comment => comment_text
|
20
|
-
end
|
21
|
-
|
22
|
-
def retrieve_table_comment(table_name)
|
23
|
-
result = select_rows(lookup_comment_sql(table_name))
|
24
|
-
if result[0][0] =~ /CREATE (?:TEMPORARY )?TABLE #{quote_table_name table_name} [^\(]*\/\*(.*)\*\/ \(/
|
25
|
-
$1
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def retrieve_column_comments(table_name, *column_names)
|
30
|
-
if column_names.empty?
|
31
|
-
return columns(table_name).inject({}) { |m, v| m[v.name.to_sym] = v.comment if v.comment.present?; m }
|
32
|
-
end
|
33
|
-
result = select_rows(lookup_comment_sql(table_name))
|
34
|
-
result[0][0] =~ /^CREATE (?:TEMPORARY )?TABLE "\w*" [^\(]*(?:\/\*.*\*\/ )?\((.*)\)[^\)]*$/
|
35
|
-
col_defs = $1
|
36
|
-
comment_matches = col_defs.scan(/"([^",]+)"[^,]*\/\*(.+?)\*\//)
|
37
|
-
comment_matches.inject({}){|m, row| m[row.first.to_sym] = row.last; m}
|
38
|
-
end
|
39
|
-
|
40
|
-
def change_column_with_migration_comments(table_name, column_name, type, options = {}) #:nodoc:
|
41
|
-
adapter = self
|
42
|
-
alter_table(table_name) do |definition|
|
43
|
-
include_default = options_include_default?(options)
|
44
|
-
definition[column_name].instance_eval do
|
45
|
-
self.type = type
|
46
|
-
self.limit = options[:limit] if options.include?(:limit)
|
47
|
-
self.default = options[:default] if include_default
|
48
|
-
self.null = options[:null] if options.include?(:null)
|
49
|
-
self.precision = options[:precision] if options.include?(:precision)
|
50
|
-
self.scale = options[:scale] if options.include?(:scale)
|
51
|
-
self.comment = CommentDefinition.new(adapter, table_name, column_name, options[:comment]) if options.include?(:comment)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
def column_for(table_name, column_name)
|
57
|
-
columns(table_name).detect{|col| col.name == column_name.to_s}
|
58
|
-
end
|
59
|
-
|
60
|
-
def comment_sql(comment_definition)
|
61
|
-
if comment_definition.nil? || comment_definition.comment_text.blank?
|
62
|
-
""
|
63
|
-
else
|
64
|
-
" /*#{escaped_comment(comment_definition.comment_text)}*/"
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
68
|
-
|
69
|
-
def add_column_options!(sql, options)
|
70
|
-
super(sql, options)
|
71
|
-
if options.keys.include?(:comment)
|
72
|
-
sql << CommentDefinition.new(self, nil, nil, options[:comment]).to_sql
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
private
|
77
|
-
def escaped_comment(comment)
|
78
|
-
comment.gsub(/\*\//, "*-/")
|
79
|
-
end
|
80
|
-
|
81
|
-
def lookup_comment_sql(table_name)
|
82
|
-
"select sql from (select * from sqlite_master where type='table' union select * from sqlite_temp_master where type='table') where tbl_name = '#{table_name}'"
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|