Ruby on rails Rails和SQlite3-从SQlite3到PostgreSQL的迁移

Ruby on rails Rails和SQlite3-从SQlite3到PostgreSQL的迁移,ruby-on-rails,ruby,postgresql,sqlite,Ruby On Rails,Ruby,Postgresql,Sqlite,我正在使用M Hartls Rails教程学习RoR。我对数据库的世界非常陌生。我创建了这个应用程序(简单的一个,就在第三章),做了我的RSpec,并制作了几个静态页面。我想从sqllite3迁移到postgres。 我将database.yml改为postgres,删除了完整的sqlite3规范。现在我运行我的应用程序,它不工作吗?上面写着“PG:”错误 我需要首先了解数据是如何存储在sqlite中的?我搜索了db目录,但找不到development.rb或任何数据库文件(可能是因为我更改了d

我正在使用M Hartls Rails教程学习RoR。我对数据库的世界非常陌生。我创建了这个应用程序(简单的一个,就在第三章),做了我的RSpec,并制作了几个静态页面。我想从sqllite3迁移到postgres。 我将database.yml改为postgres,删除了完整的sqlite3规范。现在我运行我的应用程序,它不工作吗?上面写着“PG:”错误

我需要首先了解数据是如何存储在sqlite中的?我搜索了db目录,但找不到development.rb或任何数据库文件(可能是因为我更改了database.yml文件)

在这种情况下,我没有输入任何这样的数据,(它仍然不工作,给我错误),但一般来说,数据存储在哪里?既然我将database.yml文件更改为postgres,那么现有数据会发生什么变化

rakedb:migrate
命令做什么


如果有人给一个简单的类比或解释是如何存储的,那么找到这个问题的解决方案就容易多了

sqlite使用自己的存储系统将数据存储在文件系统文件夹中的文件中

postgres也会做类似的事情,但是在不同的文件夹中,使用不同的系统

您通常不会触摸这些文件夹。您不需要知道它们在哪里,也不需要知道dbms(数据库管理系统,如sqlite或postgres)如何存储数据。您与dbms的所有交互都将通过终端或dmbs的shell客户端(您在终端即shell中启动),或通过桌面客户端,或通过rails应用程序自身与dbms的连接来完成

当您创建一个新的rails项目时,您需要创建它将使用的数据库。如果您切换到使用不同的dbms,则需要在该dbms中创建一个新数据库,以便应用程序使用。谷歌如何做到这一点

如果您在一个dbms中有数据,并且希望将其导入另一个dbms,则需要将其从第一个dbms导出并导入第二个dbms。谷歌如何做到这一点


rake db:migrate
将运行当前数据库(即database.yml中的数据库)中未运行的任何迁移。Rails在数据库中创建一个表来存储已经运行的迁移:这就是它跟踪的方式。如果您还没有创建数据库,它将失败。

一旦数据存储的概念清楚了,TAP的工作方式以及数据库之间的迁移方式将变得更加清晰。