db_migration_scaffolder 0.0.1
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/README +11 -0
- data/Rakefile +10 -0
- data/db_migration_scaffolder.gemspec +21 -0
- data/tasks/db_migration_scaffolder.rb +51 -0
- metadata +85 -0
data/README
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
Author: Kristoffer Roupé <kitofr@gmail.com>
|
2
|
+
Home page: http://github.com/kitofr/db_migration_scaffolder
|
3
|
+
|
4
|
+
Database Migration Scaffolder (for the sorry people that doesn't have a proper one)"
|
5
|
+
|
6
|
+
The scaffolder mimics the regular rails one and posts new 'sql' files to a
|
7
|
+
specified folder with unique names. The 'number' generated can be as either an
|
8
|
+
integer or a 'date'.
|
9
|
+
|
10
|
+
|
11
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'tasks/db_migration_scaffolder'
|
2
|
+
|
3
|
+
task :default => :migrate
|
4
|
+
|
5
|
+
desc "Default test task"
|
6
|
+
database_migration_scaffolder :migrate, [:database, :name] do |t,args|
|
7
|
+
t.database = args.database
|
8
|
+
t.name = args.name
|
9
|
+
t.format = "db/%s/ChangeScripts/%s %s.sql"
|
10
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.rubygems_version = "1.3.7"
|
3
|
+
s.name = "db_migration_scaffolder"
|
4
|
+
s.version = "0.0.1"
|
5
|
+
s.date = "2011-02-04"
|
6
|
+
s.summary = "Database Migration Scaffolder (for the sorry people that doesn't have a proper one)"
|
7
|
+
s.description = "The scaffolder mimics the regular rails one and posts new 'sql' files to a specified folder with unique names. The 'number' generated can be as either an integer or a 'date'."
|
8
|
+
s.authors = ["Kristoffer Roupé"]
|
9
|
+
s.email = "kitofr@gmail.com"
|
10
|
+
s.homepage = "http://github.com/kitofr/db_migration_scaffolder"
|
11
|
+
|
12
|
+
s.add_dependency("rake", "~>0.8.7")
|
13
|
+
# = MANIFEST =
|
14
|
+
s.files = %w[
|
15
|
+
README
|
16
|
+
Rakefile
|
17
|
+
db_migration_scaffolder.gemspec
|
18
|
+
tasks/db_migration_scaffolder.rb
|
19
|
+
]
|
20
|
+
# = MANIFEST =
|
21
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
def database_migration_scaffolder(*args, &block)
|
2
|
+
Tasks::DatabaseMigrationScaffolderTask.define_task(*args, &block)
|
3
|
+
end
|
4
|
+
|
5
|
+
module Tasks
|
6
|
+
class DatabaseMigrationScaffolderTask < ::Rake::Task
|
7
|
+
attr_accessor :database, :name, :format, :content
|
8
|
+
|
9
|
+
def initializer(name=:create_db_migration, taskmanager=nil)
|
10
|
+
super(name, taskmanager)
|
11
|
+
yield self if block_given?
|
12
|
+
end
|
13
|
+
|
14
|
+
def execute(args=nil)
|
15
|
+
super(args)
|
16
|
+
raise "Need to provide a database and name to create a migration on" unless database && name
|
17
|
+
|
18
|
+
filename = sprintf(format, database, next_migration_number, name)
|
19
|
+
puts ">>> Creating migration in #{filename} <<<"
|
20
|
+
File.open(filename, 'w') { |f| f.write(content) }
|
21
|
+
end
|
22
|
+
|
23
|
+
def database
|
24
|
+
@database
|
25
|
+
end
|
26
|
+
|
27
|
+
def name
|
28
|
+
@name
|
29
|
+
end
|
30
|
+
|
31
|
+
def content
|
32
|
+
@content ||= "-- (Initial file content. Put your create/modify below this line)\n\n--//@UNDO (Place your drop/delete below this line)"
|
33
|
+
end
|
34
|
+
|
35
|
+
def format
|
36
|
+
@format ||= "./%s/%s %s.sql"
|
37
|
+
end
|
38
|
+
|
39
|
+
def as_date!
|
40
|
+
@date = true
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
def next_migration_number
|
45
|
+
d = Time.now
|
46
|
+
return d.strftime("%Y%m%d%H%M%S") if @date
|
47
|
+
d.to_i
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
metadata
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: db_migration_scaffolder
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- "Kristoffer Roup\xC3\xA9"
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-02-04 00:00:00 +01:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: rake
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 49
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
- 8
|
33
|
+
- 7
|
34
|
+
version: 0.8.7
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
description: The scaffolder mimics the regular rails one and posts new 'sql' files to a specified folder with unique names. The 'number' generated can be as either an integer or a 'date'.
|
38
|
+
email: kitofr@gmail.com
|
39
|
+
executables: []
|
40
|
+
|
41
|
+
extensions: []
|
42
|
+
|
43
|
+
extra_rdoc_files: []
|
44
|
+
|
45
|
+
files:
|
46
|
+
- README
|
47
|
+
- Rakefile
|
48
|
+
- db_migration_scaffolder.gemspec
|
49
|
+
- tasks/db_migration_scaffolder.rb
|
50
|
+
has_rdoc: true
|
51
|
+
homepage: http://github.com/kitofr/db_migration_scaffolder
|
52
|
+
licenses: []
|
53
|
+
|
54
|
+
post_install_message:
|
55
|
+
rdoc_options: []
|
56
|
+
|
57
|
+
require_paths:
|
58
|
+
- lib
|
59
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
61
|
+
requirements:
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
hash: 3
|
65
|
+
segments:
|
66
|
+
- 0
|
67
|
+
version: "0"
|
68
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
hash: 3
|
74
|
+
segments:
|
75
|
+
- 0
|
76
|
+
version: "0"
|
77
|
+
requirements: []
|
78
|
+
|
79
|
+
rubyforge_project:
|
80
|
+
rubygems_version: 1.3.7
|
81
|
+
signing_key:
|
82
|
+
specification_version: 3
|
83
|
+
summary: Database Migration Scaffolder (for the sorry people that doesn't have a proper one)
|
84
|
+
test_files: []
|
85
|
+
|