Add timestamps to an existing table

The timestamp helper is only available in the create_table block. You can add these columns by specifying the column types manually: class AddTimestampsToUser < ActiveRecord::Migration def change_table add_column :users, :created_at, :datetime, null: false add_column :users, :updated_at, :datetime, null: false end end While this does not have the same terse syntax as the add_timestamps method you … Read more

Check if a table exists in Rails

In Rails 5 the API became explicit regarding tables/views, collectively data sources. # Tables and views ActiveRecord::Base.connection.data_sources ActiveRecord::Base.connection.data_source_exists? ‘kittens’ # Tables ActiveRecord::Base.connection.tables ActiveRecord::Base.connection.table_exists? ‘kittens’ # Views ActiveRecord::Base.connection.views ActiveRecord::Base.connection.view_exists? ‘kittens’ In Rails 2, 3 & 4 the API is about tables. # Listing of all tables and views ActiveRecord::Base.connection.tables # Checks for existence of kittens table/view … Read more

Add a reference column migration in Rails 4

Rails 4.x When you already have users and uploads tables and wish to add a new relationship between them. All you need to do is: just generate a migration using the following command: rails g migration AddUserToUploads user:references Which will create a migration file as: class AddUserToUploads < ActiveRecord::Migration def change add_reference :uploads, :user, index: … Read more