diff options
Diffstat (limited to 'railties/lib/generators/active_record/session_migration')
-rw-r--r-- | railties/lib/generators/active_record/session_migration/session_migration_generator.rb | 20 | ||||
-rw-r--r-- | railties/lib/generators/active_record/session_migration/templates/migration.rb | 16 |
2 files changed, 36 insertions, 0 deletions
diff --git a/railties/lib/generators/active_record/session_migration/session_migration_generator.rb b/railties/lib/generators/active_record/session_migration/session_migration_generator.rb new file mode 100644 index 0000000000..d60da5c0a5 --- /dev/null +++ b/railties/lib/generators/active_record/session_migration/session_migration_generator.rb @@ -0,0 +1,20 @@ +require 'generators/active_record' + +module ActiveRecord + module Generators + class SessionMigrationGenerator < Base + argument :name, :type => :string, :default => "add_sessions_table" + + def create_migration_file + migration_template "migration.rb", "db/migrate/#{file_name}.rb" + end + + protected + + def session_table_name + ActiveRecord::Base.pluralize_table_names ? 'session'.pluralize : 'session' + end + + end + end +end diff --git a/railties/lib/generators/active_record/session_migration/templates/migration.rb b/railties/lib/generators/active_record/session_migration/templates/migration.rb new file mode 100644 index 0000000000..19811d9455 --- /dev/null +++ b/railties/lib/generators/active_record/session_migration/templates/migration.rb @@ -0,0 +1,16 @@ +class <%= @migration_class_name %> < ActiveRecord::Migration + def self.up + create_table :<%= session_table_name %> do |t| + t.string :session_id, :null => false + t.text :data + t.timestamps + end + + add_index :<%= session_table_name %>, :session_id + add_index :<%= session_table_name %>, :updated_at + end + + def self.down + drop_table :<%= session_table_name %> + end +end |