bcms_tools 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/bcms_tools.gemspec +4 -2
- data/lib/bcms_tools/migration_helpers.rb +62 -0
- metadata +3 -2
data/VERSION
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.6
|
2
2
|
|
data/bcms_tools.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{bcms_tools}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["buzzware"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-03-01}
|
13
13
|
s.description = %q{Tools for BrowserCms.}
|
14
14
|
s.email = %q{contact@buzzware.com.au}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -31,6 +31,8 @@ Gem::Specification.new do |s|
|
|
31
31
|
"lib/bcms_tools/bcms_thumbnails.rb",
|
32
32
|
"lib/bcms_tools/form_helpers.rb",
|
33
33
|
"lib/bcms_tools/form_helpers.rb",
|
34
|
+
"lib/bcms_tools/migration_helpers.rb",
|
35
|
+
"lib/bcms_tools/migration_helpers.rb",
|
34
36
|
"lib/bcms_tools/view_helpers.rb",
|
35
37
|
"lib/bcms_tools/view_helpers.rb",
|
36
38
|
"lib/bcms_tools_dev.rb",
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# As of BrowserCMS 3.0.6, on MySQL, tables created by BrowserCMS's custom methods eg. create_content_table
|
2
|
+
# default to MyISAM format (Rails defaults to InnoDB).
|
3
|
+
|
4
|
+
# The following makes InnoDB the default format for tables for browsercms methods
|
5
|
+
# that use create_table_from_definition eg. create_content_table and create_versioned_table
|
6
|
+
ActiveRecord::ConnectionAdapters::MysqlAdapter.class_eval do
|
7
|
+
alias :orig_create_table_from_definition :create_table_from_definition
|
8
|
+
def create_table_from_definition(table_name, options, table_definition)
|
9
|
+
if !options || !options[:options] || !options[:options].index(/ENGINE/i)
|
10
|
+
options ||= {}
|
11
|
+
if options[:options]
|
12
|
+
options[:options] = options[:options] + "\nENGINE = InnoDB"
|
13
|
+
else
|
14
|
+
options[:options] = "ENGINE = InnoDB"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
orig_create_table_from_definition(table_name,options,table_definition)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
module ActiveRecord
|
22
|
+
module ConnectionAdapters
|
23
|
+
module SchemaStatements
|
24
|
+
|
25
|
+
#The following methods and migration will convert all
|
26
|
+
# MyISAM tables to InnoDB format.
|
27
|
+
#
|
28
|
+
# Also see https://browsermedia.lighthouseapp.com/projects/28481-browsercms-30/tickets/319-custom-migrations-methods-eg-create_content_table-result-in-myisam-tables
|
29
|
+
#
|
30
|
+
# example migration :
|
31
|
+
#gem 'bcms_tools'; require 'bcms_tools'
|
32
|
+
#
|
33
|
+
#class ConvertAllToInnodb < ActiveRecord::Migration
|
34
|
+
# def self.up
|
35
|
+
# convert_database_to_innodb()
|
36
|
+
# end
|
37
|
+
#
|
38
|
+
# def self.down
|
39
|
+
# end
|
40
|
+
#end
|
41
|
+
|
42
|
+
def get_isam_tables(aDatabase=nil)
|
43
|
+
aDatabase ||= ActiveRecord::Base.connection.current_database
|
44
|
+
isam_tables = []
|
45
|
+
ActiveRecord::Base.connection.execute("SELECT table_name FROM information_schema.tables WHERE engine = 'MyISAM' and table_schema = '#{aDatabase}';").each {|s| isam_tables << s}
|
46
|
+
isam_tables
|
47
|
+
end
|
48
|
+
|
49
|
+
def convert_tables_to_innodb(aTables,aDatabase=nil)
|
50
|
+
aDatabase ||= ActiveRecord::Base.connection.current_database
|
51
|
+
aTables.each {|t| ActiveRecord::Base.connection.execute("ALTER TABLE #{aDatabase}.#{t} engine=InnoDB;")}
|
52
|
+
end
|
53
|
+
|
54
|
+
# aDatabase may be nil to use the current database
|
55
|
+
def convert_database_to_innodb(aDatabase=nil)
|
56
|
+
convert_tables_to_innodb(get_isam_tables(aDatabase),aDatabase)
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bcms_tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- buzzware
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-03-01 00:00:00 +08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -64,6 +64,7 @@ files:
|
|
64
64
|
- lib/bcms_tools.rb
|
65
65
|
- lib/bcms_tools/bcms_thumbnails.rb
|
66
66
|
- lib/bcms_tools/form_helpers.rb
|
67
|
+
- lib/bcms_tools/migration_helpers.rb
|
67
68
|
- lib/bcms_tools/view_helpers.rb
|
68
69
|
- lib/bcms_tools_dev.rb
|
69
70
|
- rails/init.rb
|