Why dont migrations in a rails engine with devise generate a schema.rb in the db folder but in the test/dummy/db folder?

167 views Asked by At

I am trying to develop a rails engine using Devise. This engine is hosted in a rails application (at the root level) and I am using it as a gem.

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.5.0'

gem 'my_engine', path: './my_engine'

I want to generate a devise model called User. The migration file is generated

class DeviseCreateMyEngineUsers < ActiveRecord::Migration[6.0]
  def change
    create_table :my_engine_users do |t|
      ## Database authenticatable
      t.string :email,              null: false, default: ""
      t.string :encrypted_password, null: false, default: ""

      ## Recoverable
      t.string   :reset_password_token
      t.datetime :reset_password_sent_at

      ## Rememberable
      t.datetime :remember_created_at

      ## Trackable
      # t.integer  :sign_in_count, default: 0, null: false
      # t.datetime :current_sign_in_at
      # t.datetime :last_sign_in_at
      # t.string   :current_sign_in_ip
      # t.string   :last_sign_in_ip

      ## Confirmable
      # t.string   :confirmation_token
      # t.datetime :confirmed_at
      # t.datetime :confirmation_sent_at
      # t.string   :unconfirmed_email # Only if using reconfirmable

      ## Lockable
      # t.integer  :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
      # t.string   :unlock_token # Only if unlock strategy is :email or :both
      # t.datetime :locked_at


      t.timestamps null: false
    end

    add_index :my_engine_users, :email,                unique: true
    add_index :my_engine_users, :reset_password_token, unique: true
    # add_index :my_engine_users, :confirmation_token,   unique: true
    # add_index :my_engine_users, :unlock_token,         unique: true
  end
end

Now when I run rails db:migrate at the root of the engine, I can see the migrations happening in my console but there is no schema.rb in the db folder of my engine whereas there is a schema.rb with the table created by the migration in test/dummy/db in my engine directory. I don't think that not having a schema.rb in the db folder of my engine is normal and I would like to fix that. Any help is welcome.

0

There are 0 answers