aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails_generator/generators/components/session_migration
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2005-11-20 04:21:06 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2005-11-20 04:21:06 +0000
commit9b9578fa4799f911edbc01ae5b7d30ee874812a0 (patch)
treecaec4877a26001fad87ef35fd19e9249f4bfdc8c /railties/lib/rails_generator/generators/components/session_migration
parent81c5242f43cb45d97b2a56409f8b39b0dba75ac3 (diff)
downloadrails-9b9578fa4799f911edbc01ae5b7d30ee874812a0.tar.gz
rails-9b9578fa4799f911edbc01ae5b7d30ee874812a0.tar.bz2
rails-9b9578fa4799f911edbc01ae5b7d30ee874812a0.zip
Introducing the session_migration generator. Creates an add_session_table migration. References #2958.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3098 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'railties/lib/rails_generator/generators/components/session_migration')
-rw-r--r--railties/lib/rails_generator/generators/components/session_migration/USAGE15
-rw-r--r--railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb13
-rw-r--r--railties/lib/rails_generator/generators/components/session_migration/templates/migration.rb15
3 files changed, 43 insertions, 0 deletions
diff --git a/railties/lib/rails_generator/generators/components/session_migration/USAGE b/railties/lib/rails_generator/generators/components/session_migration/USAGE
new file mode 100644
index 0000000000..43e4e54c97
--- /dev/null
+++ b/railties/lib/rails_generator/generators/components/session_migration/USAGE
@@ -0,0 +1,15 @@
+Description:
+ The session table migration generator creates a migration for adding a session table
+ used by CGI::Session::ActiveRecordStore.
+
+ The generator takes a migration name as its argument. The migration name may be
+ given in CamelCase or under_score.
+
+ The generator creates a migration class in db/migrate prefixed by its number
+ in the queue.
+
+Example:
+ ./script/generate session_migration AddSessionTable
+
+ With 4 existing migrations, this will create an AddSessionTable migration in the
+ file db/migrate/5_add_session_table.rb \ No newline at end of file
diff --git a/railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb b/railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb
new file mode 100644
index 0000000000..12802858f6
--- /dev/null
+++ b/railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb
@@ -0,0 +1,13 @@
+class SessionMigrationGenerator < Rails::Generator::NamedBase
+ def initialize(runtime_args, runtime_options = {})
+ runtime_args << 'add_session_table' if runtime_args.empty?
+ super
+ end
+
+ def manifest
+ record do |m|
+ m.directory 'db/migrate'
+ m.migration_template 'migration.rb', 'db/migrate'
+ end
+ end
+end
diff --git a/railties/lib/rails_generator/generators/components/session_migration/templates/migration.rb b/railties/lib/rails_generator/generators/components/session_migration/templates/migration.rb
new file mode 100644
index 0000000000..0ab7fcb1e9
--- /dev/null
+++ b/railties/lib/rails_generator/generators/components/session_migration/templates/migration.rb
@@ -0,0 +1,15 @@
+class <%= class_name %> < ActiveRecord::Migration
+ def self.up
+ create_table :sessions do |t|
+ t.column :session_id, :string
+ t.column :data, :text
+ t.column :updated_at, :datetime
+ end
+
+ add_index :sessions, :session_id
+ end
+
+ def self.down
+ drop_table :sessions
+ end
+end