从MySQL到SQLite的迁移
我使用MySQL数据库,但由于我使用Rails,我知道我必须使用SQLite。现在我有两个问题: 1-现在我的计算机中有MySQL,如果我安装SQLite,会发生任何问题吗?例如,它们之间是否存在冲突从MySQL到SQLite的迁移,mysql,sql,ruby-on-rails,sqlite,Mysql,Sql,Ruby On Rails,Sqlite,我使用MySQL数据库,但由于我使用Rails,我知道我必须使用SQLite。现在我有两个问题: 1-现在我的计算机中有MySQL,如果我安装SQLite,会发生任何问题吗?例如,它们之间是否存在冲突 2-它们在语法上有什么区别?您可以轻松地将mysql与rails结合使用 在您的文件中: gem 'mysql' 在您的database.yml中 development: adapter: mysql username: ... password: ... database:
2-它们在语法上有什么区别?您可以轻松地将mysql与rails结合使用 在您的文件中:
gem 'mysql'
在您的database.yml中
development:
adapter: mysql
username: ...
password: ...
database: ...
毫无疑问
SQLite主要用于开发目的,因为它很容易设置数据库而不会遇到太多挫折,但是它在并发性方面(对于web应用程序很可能)的效率肯定低于MySQL之类的东西。因此,无论您是否在开发中使用SQLLite,在生产中使用MySQL(或类似的东西)都是非常明智的
为了完整性起见,SQLite还用于“一体化”软件包(如mobile development),在该软件包中,您可以轻松地将SQLite文件与应用程序捆绑在一起
如以下所述:
SQLite不打算成为一个
企业数据库引擎。事实并非如此
旨在与Oracle或
PostgreSQL
及
查看SQLite的另一种方法是:
SQLite的设计目的不是替换
神谕它的设计目的是取代
fopen()
就Ruby的好处而言,实际上没有多少好处,因为库/ORM(即Active Record)将两个系统之间的差异抽象出来,在单个包装器中创建一致的访问层
检查这个
检查一下:)
读一下这个
什么时候应该使用SQLite,什么时候应该使用MySQl的问题已经一再出现。要知道何时何地使用SQLite或MySQL数据库管理系统是合适的,最重要的是要知道它们之间的区别,如果有区别的话
简而言之,SQLite是一个开源库,它实现了一个独立的事务性SQL数据库引擎,它不需要服务器,只需很少或根本不需要配置。另一方面MySQL也是一个开源的关系数据库管理系统
在回答这个问题时,我提供了一个详细的列表,列出了SQLite能够做得很好的一些事情,并将它们与MySQL进行了比较
SQLite是:
- 易于设置,在许多情况下无需配置或安装 非常好,可以用于您只需要临时使用或用于测试目的的数据库
- 不适用于需要用户管理的地方,因为SQLite使用文件系统权限,因此无法使用GRANT和REVOKE等SQL语句
- 适合在嵌入式应用程序和安装中使用,并嵌入到应用程序本身中
- 非常适合快速发展
- 缺乏绩效衡量特征
- 不适用于需要数据库上的并发事务的情况
- 不适合大型数据库,因为SQLite将数据库存储在单个文件中,这可能受到操作系统的限制,因为SQLite无法在卷之间拆分数据
- 不适合在需要客户机/服务器体系结构的任何情况下使用 适合中小型网站使用。这些网站平均每天点击量不超过10万次
- 不容易扩展。除了添加列和重命名表之外,SQLite中不允许更改表
- 适用于替代临时文件存储,通常应用程序使用fopen()、fread()和fwrite()访问文件
- 不适用于需要存储过程以及需要某些类型的联接的情况
- 设置起来要困难得多,必须配置用户 用于创建临时数据库以及用于测试目的。只有在已经设置了MySQL数据库服务器和客户机的情况下,这才是切实可行的 非常适合管理用户及其权限
- 不适合嵌入某些硬件,因为您仍然需要数据库的服务器组件。MySQL适合使用提供的libmysql库嵌入到应用程序中
- 对于某些情况下的快速发展非常有用
- 非常适合数据上的并发事务,非常适合多用户环境
- 非常适合大规模生产应用程序,甚至可以通过群集数据库配置进行扩展
- 非常适合在客户机/服务器体系结构设置中使用
- 适用于每天访问量达数十亿次的小型、中型和大型网站
- MySQL数据和表具有高度的可扩展性,MySQL DBA可以随时对其进行操作。这种扩展功能超越了磁盘、物理服务器和位置
- 不打算替换fopen()、fread()和fwrite()。MySQL管理自己的数据文件,而不是操作系统
- 与存储过程、触发器、视图和其他主要关系数据库管理系统常见的其他操作完全兼容。MySQL仅为选定的存储引擎提供这些功能
gem 'mysql2'
在gem文件中运行
bundle install
并将database.yml文件替换为
# MySQL. Versions 4.1 and 5.0 are recommended.
#
# Install the MySQL driver:
# gem install mysql2
#
# And be sure to use new-style password hashing:
# http://dev.mysql.com/doc/refman/5.0/en/old-client.html
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: my_database_development
pool: 5
username: root
password:
host: localhost
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: mysql2
encoding: utf8
reconnect: false
database: my_database_test
pool: 5
username: root
password:
host: localhost
production:
adapter: mysql2
encoding: utf8
reconnect: false
database: my_database_production
pool: 5
username: root
password:
host: localhost
我希望他的回答对你有意义。现在给你一个更好的快速提示。开始使用谷歌吧。“但是因为我在Rai工作