aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails_generator/generators/components/session_migration
diff options
context:
space:
mode:
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