I installed PostgreSQL, later
1 - Installed gem pg
2 - Installed gems:
gem install activerecord
gem install sinatra-activerecord
gem install rake
3 - I created connect to database to file app.rb
# app.rb
configure :development do set :database, {adapter: "postgresql", encoding: "unicode", database: "your_database_name", pool: 2, username: "your_username", password: "your_password"}
end
configure :production do
set :database, {adapter: "postgresql", encoding: "unicode", database: "your_database_name", pool: 2, username: "your_username", password: "your_password"}
end
4 - Created model to file app.rb
class Article < ActiveRecord::Base
end
5 - Created migration to Rakefile
require 'sinatra/activerecord'
require 'sinatra/activerecord/rake'
require './app'
6 - rake db:create_migration NAME=create_articles
7 - In new created by file migration
class CreateArticles < ActiveRecord::Migration
def change
create_table :articles do |t|
t.string :title
t.string :content
t.boolean :published, :default => false
t.datetime :published_on, :required => false
t.integer :likes, :default => 0
t.timestamps null: false
end
end
end
8 - I fulfilled commands db:create
and rake db:migration
Database created, The database in the psql console is displayed. how about now added line to database, in sinatra?
For create new article use:
Article.create(title: your_title, content: your_content, published: true, published_on: Time.now)
For find article by ID:
Article.find(id)
For update article:
article = Article.find(id)
article.update(title: your_title, content: your_content, published: true, published_on: Time.now)
For delete article record:
article = Article.find(id)
article.destroy
AR documentation:
for persistence - https://www.rubydoc.info/gems/activerecord/ActiveRecord/Persistence
For finding: https://www.rubydoc.info/gems/activerecord/ActiveRecord/FinderMethods
For complex queries: https://www.rubydoc.info/gems/activerecord/ActiveRecord/QueryMethods