Ruby MySQL 数据库迁移脚本
Ruby MySQL Database Migration Script
我是 ruby 的新手,我想为 MySQL 数据库创建一个数据库迁移脚本。我浏览了在线资料,其中我必须创建一个应用程序才能创建迁移脚本。
我可以在单个文件中编写数据库迁移脚本来执行以下任务吗:
- 创建数据库
- 创建 2-3 个表
- 在这些表中植入一些数据
任何帮助或参考都会很棒
提前致谢
您只能使用一个 gem mysql2 -
或mysql2与activerecord.
迁移文件示例如下:
create_database.rb
require 'mysql2'
client = Mysql2::Client.new(host: 'localhost', username: 'root')
client.query("CREATE DATABASE my_database")
require 'active_record'
class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :name
t.string :email
end
add_index :users, :email, unique: true
end
end
class CreatePosts < ActiveRecord::Migration
def self.up
create_table :posts do |t|
t.references :user, index: true
t.string :title
t.text :body
end
end
end
ActiveRecord::Base.establish_connection(
adapter: 'mysql2',
encoding: 'utf8',
host: 'localhost',
database: 'my_database',
username: 'root',
socket: '/tmp/mysql.sock'
)
CreateUsers.up
CreatePosts.up
class User < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :user
end
user = User.create(email: "test@example.com", name: "User")
user.posts.create(title: "My Post", body: "Lorem ipsum")
运行 它与 $ ruby create_database.rb
(应该安装 gems mysql2
和 activerecord
)。
我是 ruby 的新手,我想为 MySQL 数据库创建一个数据库迁移脚本。我浏览了在线资料,其中我必须创建一个应用程序才能创建迁移脚本。
我可以在单个文件中编写数据库迁移脚本来执行以下任务吗:
- 创建数据库
- 创建 2-3 个表
- 在这些表中植入一些数据
任何帮助或参考都会很棒
提前致谢
您只能使用一个 gem mysql2 -
或mysql2与activerecord.
迁移文件示例如下:
create_database.rb
require 'mysql2'
client = Mysql2::Client.new(host: 'localhost', username: 'root')
client.query("CREATE DATABASE my_database")
require 'active_record'
class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :name
t.string :email
end
add_index :users, :email, unique: true
end
end
class CreatePosts < ActiveRecord::Migration
def self.up
create_table :posts do |t|
t.references :user, index: true
t.string :title
t.text :body
end
end
end
ActiveRecord::Base.establish_connection(
adapter: 'mysql2',
encoding: 'utf8',
host: 'localhost',
database: 'my_database',
username: 'root',
socket: '/tmp/mysql.sock'
)
CreateUsers.up
CreatePosts.up
class User < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :user
end
user = User.create(email: "test@example.com", name: "User")
user.posts.create(title: "My Post", body: "Lorem ipsum")
运行 它与 $ ruby create_database.rb
(应该安装 gems mysql2
和 activerecord
)。