Миграция с MySQL на SQLite - PullRequest
       2

Миграция с MySQL на SQLite

0 голосов
/ 28 августа 2011

Я работал с базой данных MySQL, но так как я работаю с Rails, я понимаю, что должен использовать SQLite. Теперь у меня есть два вопроса:

1 - Теперь у меня на компьютере MySQL. Если я установлю SQLite, возникнут ли какие-либо проблемы? Например, есть ли конфликты между ними?

2 - Какие различия они имеют в синтаксисе?

Ответы [ 2 ]

2 голосов
/ 28 августа 2011

С этот вопрос ..

SQLite используется главным образом в целях разработки только потому, что довольно просто настроить базу данных без особых проблем, однако она, безусловно, менее эффективна с точки зренияпараллелизм (что весьма вероятно для веб-приложений), чем что-то вроде MySQL.Поэтому независимо от того, используете ли вы SQLLite в разработке или нет, настоятельно рекомендуется использовать MySQL (или что-то подобное) в производстве.

Для полноты картины SQLite также используется в программном обеспечении «все в одном пакете» (например,как мобильную разработку), в которой вы можете легко связать файл SQLite с вашим приложением.

Как указано на Веб-сайте SQLite :

SQLite не предназначен длябыть движком базы данных предприятия.Он не предназначен для конкуренции с Oracle или PostgreSQL.

и

Другой способ взглянуть на SQLite заключается в следующем: SQLite не предназначен для замены Oracle.Он предназначен для замены fopen ().

С точки зрения преимуществ Ruby на самом деле не так много преимуществ, поскольку библиотеки / ORM (то есть Active Record) действительно абстрагируют различия между двумя системами.чтобы создать единый уровень доступа в одной оболочке.

Проверьте этот вопрос из stackoverflow И проверьте этот Google.com :)

Прочитайте это

Вопрос о том, когда следует использовать SQLite и когда следует использовать MySQl, поднимался снова и снова.Чтобы знать, когда и где целесообразно использовать системы управления базами данных SQLite или MySQL, прежде всего важно знать, в чем разница между ними, если вообще есть какая-либо разница.

В двух словахSQLite - это библиотека с открытым исходным кодом, которая реализует автономное транзакционное ядро ​​базы данных SQL, которое не требует сервера и работает практически без конфигурации.С другой стороны, MySQL также является и Системой управления реляционными базами данных с открытым исходным кодом.

Рассматривая вопрос ответа на этот вопрос, я предоставил подробный список некоторых вещей, которые SQLite способен выполнять хорошо, и у меня естьпо сравнению с MySQL

SQLite:

  • прост в настройке, и во многих случаях не требуется достаточно больших настроек или конфигурации для использования в базах данных, которые выпонадобится только на временной основе или для целей тестирования
  • не подходит, когда требуется управление пользователями, поскольку SQLite использует разрешения файловых систем, поэтому вы не сможете использовать операторы SQL, такие как GRANT и REVOKE.
  • подходит для использования во встроенных приложениях и установках и встраивается в сами приложения
  • отлично подходит для быстрой разработки
  • отсутствует функция измерения производительности
  • не подходит для параллелизматранзакции по базам данных обязательны
  • не подходит для крупномасштабных баз данных, поскольку SQLite хранит базу данных в одном файле, и это может подпадать под ограничения операционной системы, где SQLite не способен разбивать данные по томам.
  • не подходит для использованияв любой ситуации, когда требуется архитектура клиент / сервер, подходящая для использования на веб-сайтах малого и среднего размера.Это веб-сайты со средним числом посещений не более 100 тыс. В день.
  • Трудно масштабируемые.Изменение таблиц в SQLite не допускается, за исключением добавления столбцов и переименования таблиц
  • , подходящих для замены файлового хранилища Ad-hoc, обычно когда приложения обращаются к файлам с помощью fopen (), fread () и fwrite ().
  • Не подходит в ситуации, когда необходимы хранимые процедуры и когда требуются определенные типы объединений

MySQL:

  • далекоболее сложная настройка и настройка пользователей является обязательным условием для создания временных баз данных, а также для целей тестирования.Это будет практичным, если у вас уже установлен сервер базы данных MySQL и клиентвполне подходит для управления пользователями и их разрешениями
  • , не подходит для встраивания в некоторые аппаратные средства, так как вам все равно потребуется серверный компонент базы данных.MySQL, тем не менее, подходит для встраивания в приложение с использованием предоставленных библиотек libmysql
  • , отлично подходит для быстрой разработки в некоторых ситуациях
  • , идеально подходит для параллельных транзакций с данными и хорошо подходит для многопользовательской среды
  • отлично подходит для крупномасштабных производственных приложений, которые масштабируются даже по кластерным конфигурациям баз данных
  • идеально подходит для использования в архитектуре клиент / сервер
  • подходит для использования на малых, средних и крупных веб-сайтахполучая миллиарды хитов в день
  • с высокой степенью масштабируемости, насколько позволяют данные и таблицы MySQL, и которыми можно манипулировать в любое время DBA 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.Я предполагаю, что вы используете rails 3, добавьте

  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

Я надеюсь, что его ответ будет иметь смысл для вас.Теперь лучший быстрый совет для вас.начать использовать Google.

0 голосов
/ 28 августа 2011

Вы можете легко использовать mysql с рельсами.

В вашем Gemfile:

gem 'mysql'

В вашей базе данных .yml

development:
  adapter: mysql
  username: ...
  password: ...
  database: ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...