diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2005-11-20 04:21:06 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2005-11-20 04:21:06 +0000 |
commit | 9b9578fa4799f911edbc01ae5b7d30ee874812a0 (patch) | |
tree | caec4877a26001fad87ef35fd19e9249f4bfdc8c /railties/lib/rails_generator/generators/components/session_migration | |
parent | 81c5242f43cb45d97b2a56409f8b39b0dba75ac3 (diff) | |
download | rails-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')
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 |