From 9b9578fa4799f911edbc01ae5b7d30ee874812a0 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sun, 20 Nov 2005 04:21:06 +0000 Subject: 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 --- .../generators/components/session_migration/USAGE | 15 +++++++++++++++ .../session_migration/session_migration_generator.rb | 13 +++++++++++++ .../components/session_migration/templates/migration.rb | 15 +++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 railties/lib/rails_generator/generators/components/session_migration/USAGE create mode 100644 railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb create mode 100644 railties/lib/rails_generator/generators/components/session_migration/templates/migration.rb (limited to 'railties/lib/rails_generator/generators/components/session_migration') 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 -- cgit v1.2.3