迁移从MySQL到SQLite的

迁移从MySQL到SQLite的

问题描述:

我曾与MySQL数据库,但因为我使用Rails工作,我明白,我必须使用SQLite。现在,我有两个问题:迁移从MySQL到SQLite的

1 - 现在我的MySQL在我的电脑,如果我安装的SQLite,将任何问题发生?比如他们之间有没有冲突?

2 - 什么区别,他们有语法?

+3

“但是因为我使用Rails,我明白我必须使用SQLite”errr,你可以在Rails中使用MySQL。没有问题会发生,SQLite只是一个动态链接库,Ruby有它的宝石。 – 2011-08-28 11:18:56

+0

在我正在阅读的书中,作者表示在Ruby中,SQLite比MySQL好得多。 –

+0

这是不对的。它可能适用于小型应用程序,但不适用于大型应用程序。 – Femaref

this问题..

SQLite是主要用于开发目的仅仅是因为它是很简单的建立一个没有太多挫折的数据库,然而它在并发性方面(对于web应用来说很有可能)的效率肯定比一些效率低像MySQL这样的东西。所以不管你是否在开发中使用SQLLite,在生产中使用MySQL(或者其他类似的东西)都是非常明智的。

为了完整起见,SQLite的也用于“在一个包”的软件(如移动开发),在其中您可以轻松地捆绑SQLite的文件与应用程序。

如前所述上SQLite Website

SQLite是不打算成为 企业数据库引擎。它不是 旨在与Oracle竞争或 PostgreSQL。

另一种方式来看待SQLite是这样的: SQLite的目的不是要取代 甲骨文。它旨在取代 fopen()。

就Ruby的好处而言,实际上没有太大的好处,因为库/ ORM(即Active Record)真正地抽象了两个系统之间的差异,在单个包装中创建一致的访问层。

入住这question from * 并检查该Google.com :)

阅读本

时,应使用SQLite和MYSQL时应该使用的问题又拿出了一遍又一遍。要知道何时何地使用SQLite或MySQL数据库管理系统是合适的,首先重要的是要知道它们之间的区别是什么,即使它们之间存在任何差异。

简而言之,SQLite是一个实现它不需要服务器和工作在很少或没有配置独立的事务性的SQL数据库引擎的开源库。另一方面MySQL也是和开源关系数据库管理系统。

潜水右转入回答这个问题的任务,我已经提供了一些东西SQLite是能够做得很好的项目列表和我比较与MySQL

SQLite是一样的:

  • 容易建立,很多情况下没有配置或安装需要 足够大,使用数据库,你只需要一个临时的基础上或用于测试目的
  • 不适合在那里用户法力因为SQLite使用文件系统权限,所以需要使用gement,因此您无法使用GRANT和REVOKE等SQL语句。
  • 适合用在嵌入式应用和安装,并嵌入到应用程序本身
  • 伟大的快速发展
  • 缺乏性能测量功能,其中对数据库的并发事务需要
  • 不是好
  • 不适合SQLite将大型数据库存储在单个文件中,这可能会受到SQLite无法跨卷分割数据的操作系统的限制。
  • 不适合在需要客户端/服务器架构的任何情况下使用 适合在中小型网站上使用。这些网站每天的点击量平均在100K或更少。
  • 不容易扩展。变更表SQLite中是不允许的,除了添加列和重命名表
  • 合适替代特设文件存储通常使用其中fopen()函数,的fread()和fwrite应用程序的访问的文件()的。
  • 不适合的情况下,需要存储过程和在需要某些类型的连接的

MySQL是:

  • 更难以建立和用户的配置一个必须 有利于创建临时数据库以及用于测试目的。这如果您有MySQL数据库服务器和客户端已经建立 很适合担任管理用户及其权限
  • 不适合在一些硬件嵌入,你仍然需要数据库的服务器组件只会是实用的。MySQL的虽然是适合使用所提供的libmysql库
  • 伟大的快速发展,在某些情况下
  • 非常适合对数据的并发交易,并非常适用于多用户环境
  • 非常适合大规模生产应用嵌入到应用程序其规模甚至超过集群数据库配置
  • 非常适合使用在客户端/服务器体系结构建立适合
  • 对小型,中型和采取以十亿命中大型网站每天
  • 高度scalab使用就MySQL数据和表而言,MySQL数据库管理员可随时操作MySQL数据库。这种扩展能力超越了磁盘,物理服务器和位置,并不是要取代fopen(),fread()和fwrite()。 MySQL管理自己的数据文件,而不是操作系统与存储过程,触发器,视图以及其他主要关系数据库管理系统常见的其他操作完全兼容的操作系统
  • 。 MySQL只提供这些功能与选择的存储引擎

有了这些提示,我当然希望他们是一个称职的向导推你在正确的方向选择的时候来的SQLite或MySQL之间选择适合您的下一个项目之间。

更多修改: - 请按照以下指南学习导轨。

http://pragprog.com/book/rails4/agile-web-development-with-rails

http://railsforzombies.org/

http://www.amazon.com/dp/0596518773/

http://railscasts.com/

http://guides.rubyonrails.org/

使用MySQL的快速的解决方案。我假设u的使用Rails 3,添加

gem 'mysql2' 

在宝石文件并运行

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 

希望他的回答对你有意义。现在给你一个更好的快速提示。开始使用谷歌。

您可以轻松地使用MySQL的轨道。

在你的Gemfile:

gem 'mysql' 

在你的database.yml

development: 
    adapter: mysql 
    username: ... 
    password: ... 
    database: ... 
+0

SQLite与MySQL相比有什么优势吗?或者有没有MySQL与SQLite有什么优势? –

+0

SQlite可能适用于小型应用程序,但它只是驱动程序访问的单个文件。 mysql是一个连接到外部程序,并且可以更好地处理并发访问的方式。当一个人只能访问文件时通常使用Sqlite,这对于一个网站来说非常困难,其中重点在于并发访问。 – Femaref