好久没有写博客了,监督一下自己
由于接触rails时间不久,接触之前数据库的基础为零,遇到数据库的问题总是很蛋疼。今天总结一下rails数据库的一些小问题(ubuntu14.04 rails 4.4.2 ruby 2.2.0 rubymine7.0 mysql)
1,rails 命令修改数据库(比较复杂的话)
rails g migrataion ChangeForUsers;
在db/migrate中会生成一个新的rb文件,然后修改里面的内容,有如下方法:
remove_column :删除字段
rename_column :更改字段的名称
change_column :修改字段的类型
add_column :增加字段
例如:
2.在新建的rb文件中写入如下内容:
rails g migrataion ChangeForUsers;
class ChangeForUsers < ActiveRecord::Migration
def change
add_column :users,:password,:string #添加password字段
...
...
end
end
最后rake db:migrate即可
修改的比较少的话:
rails g migration add_avatar_to_users avatar:string
rake db:migrate
这样就可以了
其实rubymine里面有database非常好用
view => database进入数据库
建立mysql连接后可以直接在database里进行数据库的所有操作,非常方便。在里面修改之后会自动同步到你的数据库里,可以在database修改完数据后在终端进入mysql看看。数据是同步的,不用敲麻烦的数据库命令了。
在rails项目中使用mysql数据库:
rails new 项目名称 -d mysql
还有数据库的一些基本操作:
1、net start mysql //启动mysql服务
2、net stop mysql //停止mysql服务
3、quit //退出mysql操作
4、mysqladmin -u用户名 -p旧密码 password 新密码 //更改密码
5、grant select on 数据库.* to 用户名@登录主机 identified by "密码" //增加新用户
例:
增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作 (localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据 库,只能通过MYSQL主机上的web页来访问了。
grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to test2@localhost identified by "";
数据库操作:
1、show databases; //列出数据库
2、use database_name //使用database_name数据库
3、create database data_name //创建名为data_name的数据库
4、drop database data_name //删除一个名为data_name的数据库