taps 0.2.13 → 0.2.14

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :patch: 13
2
+ :patch: 14
3
3
  :major: 0
4
4
  :minor: 2
data/bin/schema CHANGED
@@ -10,6 +10,7 @@ database_url = ARGV.shift.strip rescue ''
10
10
 
11
11
  def show_usage_and_exit
12
12
  puts <<EOTXT
13
+ schema console <database_url>
13
14
  schema dump <database_url>
14
15
  schema indexes <database_url>
15
16
  schema reset_db_sequences <database_url>
@@ -33,6 +34,12 @@ elsif cmd == 'load'
33
34
  Taps::Schema.load(database_url, schema)
34
35
  elsif cmd == 'reset_db_sequences'
35
36
  Taps::Schema.reset_db_sequences(database_url)
37
+ elsif cmd == 'console'
38
+ Taps::Schema.connection(database_url)
39
+ $db = ActiveRecord::Base.connection
40
+ require 'irb'
41
+ require 'irb/completion'
42
+ IRB.start
36
43
  else
37
44
  show_usage_and_exit
38
45
  end
@@ -4,7 +4,7 @@ module Taps
4
4
 
5
5
  LIST = {
6
6
  :all => ['non_rails_schema_dump'],
7
- :mysql => ['invalid_text_limit'],
7
+ :mysql => ['invalid_text_limit', 'mysql_invalid_primary_key'],
8
8
  :postgresql => ['invalid_text_limit']
9
9
  }
10
10
 
@@ -0,0 +1,17 @@
1
+ module ActiveRecord
2
+ module ConnectionAdapters
3
+ class MysqlAdapter < AbstractAdapter
4
+ alias_method :orig_pk_and_sequence_for, :pk_and_sequence_for
5
+ # mysql accepts varchar as a primary key but most others do not.
6
+ # only say that a field is a primary key if mysql says so
7
+ # and the field is a kind of integer
8
+ def pk_and_sequence_for(table)
9
+ keys = []
10
+ execute("describe #{quote_table_name(table)}").each_hash do |h|
11
+ keys << h["Field"] if h["Key"] == "PRI" and !(h["Type"] =~ /int/).nil?
12
+ end
13
+ keys.length == 1 ? [keys.first, nil] : nil
14
+ end
15
+ end
16
+ end
17
+ end
data/lib/taps/schema.rb CHANGED
@@ -34,8 +34,9 @@ module Schema
34
34
 
35
35
  def connection(database_url)
36
36
  config = create_config(database_url)
37
+ c = ActiveRecord::Base.establish_connection(config)
37
38
  Taps::AdapterHacks.load(config['adapter'])
38
- ActiveRecord::Base.establish_connection(config)
39
+ c
39
40
  end
40
41
 
41
42
  def dump(database_url)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taps
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.13
4
+ version: 0.2.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ricardo Chimal, Jr.
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-04-02 00:00:00 -07:00
13
+ date: 2009-04-10 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -90,15 +90,16 @@ files:
90
90
  - spec/utils_spec.rb
91
91
  - lib/taps/progress_bar.rb
92
92
  - lib/taps/client_session.rb
93
- - lib/taps/adapter_hacks.rb
94
- - lib/taps/adapter_hacks/invalid_text_limit.rb
93
+ - lib/taps/utils.rb
94
+ - lib/taps/db_session.rb
95
95
  - lib/taps/adapter_hacks/non_rails_schema_dump.rb
96
+ - lib/taps/adapter_hacks/mysql_invalid_primary_key.rb
97
+ - lib/taps/adapter_hacks/invalid_text_limit.rb
96
98
  - lib/taps/schema.rb
97
99
  - lib/taps/config.rb
98
100
  - lib/taps/cli.rb
99
- - lib/taps/db_session.rb
100
101
  - lib/taps/server.rb
101
- - lib/taps/utils.rb
102
+ - lib/taps/adapter_hacks.rb
102
103
  - README.rdoc
103
104
  - LICENSE
104
105
  - VERSION.yml