Initial commit

This commit is contained in:
Stanislav Kolotinskiy 2021-03-19 17:31:38 +02:00
commit 0cec39413f
116 changed files with 9683 additions and 0 deletions

View file

@ -0,0 +1,12 @@
class CreateAuthors < ActiveRecord::Migration[6.1]
def change
create_table :authors do |t|
t.string :first_name
t.string :last_name
t.timestamps
end
add_index :authors, [ :first_name, :last_name ]
end
end

View file

@ -0,0 +1,13 @@
class CreateBooks < ActiveRecord::Migration[6.1]
def change
create_table :books do |t|
t.string :title
t.decimal :price, precision: 10, scale: 2
t.boolean :published
t.timestamps
end
add_index :books, :published
end
end

View file

@ -0,0 +1,10 @@
class CreateAuthorsBooks < ActiveRecord::Migration[6.1]
def change
create_table :authors_books do |t|
t.belongs_to :book
t.belongs_to :author
t.timestamps
end
end
end

41
db/schema.rb generated Normal file
View file

@ -0,0 +1,41 @@
# This file is auto-generated from the current state of the database. Instead
# of editing this file, please use the migrations feature of Active Record to
# incrementally modify your database, and then regenerate this schema definition.
#
# This file is the source Rails uses to define your schema when running `bin/rails
# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
# be faster and is potentially less error prone than running all of your
# migrations from scratch. Old migrations may fail to apply correctly if those
# migrations use external dependencies or application code.
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 2021_03_19_142059) do
create_table "authors", force: :cascade do |t|
t.string "first_name"
t.string "last_name"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.index ["first_name", "last_name"], name: "index_authors_on_first_name_and_last_name"
end
create_table "authors_books", force: :cascade do |t|
t.integer "book_id"
t.integer "author_id"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.index ["author_id"], name: "index_authors_books_on_author_id"
t.index ["book_id"], name: "index_authors_books_on_book_id"
end
create_table "books", force: :cascade do |t|
t.string "title"
t.decimal "price", precision: 10, scale: 2
t.boolean "published"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.index ["published"], name: "index_books_on_published"
end
end

51
db/seeds.rb Normal file
View file

@ -0,0 +1,51 @@
books = Book.create([
{
title: 'Journey to the Center of the Earth',
price: 10900,
published: true
},
{
title: 'From the Earth to the Moon',
price: 6300,
published: false
},
{
title: 'Imaginary trip',
price: 3600,
published: true
},
])
authors = Author.create([
{
first_name: 'Jules',
last_name: 'Verne'
},
{
first_name: 'Dick',
last_name: 'Pick',
},
{
first_name: 'Rick',
last_name: 'Pickle'
},
])
BookAuthor.create([
{
book: books.first,
author: authors.first
},
{
book: books[1],
author: authors.first
},
{
book: books[2],
author: authors[1]
},
{
book: books[2],
author: authors[2]
},
])