我已经在squelize构造函数中定义了数据库名称,以便由相应的模型文件生成表。表在给定的数据库中成功创建。我对默认情况下在models.So中是公共的模式感到困惑,如果表在默认的postgresql服务器名为PostgreSQL 15的数据库中正确生成,为什么要在models.So中定义模式呢?如果我将模式的名称从公共改为一些ALGH,它会说模式不存在。如果它正在引用模式,那么在sequelize构造函数中给出db名称的目的是什么?
我已经在squelize构造函数中定义了数据库名称,以便由相应的模型文件生成表。表在给定的数据库中成功创建。我对默认情况下在models.So中是公共的模式感到困惑,如果表在默认的postgresql服务器名为PostgreSQL 15的数据库中正确生成,为什么要在models.So中定义模式呢?如果我将模式的名称从公共改为一些ALGH,它会说模式不存在。如果它正在引用模式,那么在sequelize构造函数中给出db名称的目的是什么?
1条答案
按热度按时间tct7dpnv1#
您可以在同一个数据库中拥有多个模式,用于不同的目的,例如为不同的应用程序/服务或按功能划分表集。
您可以在Sequelize示例中指定一个架构,该架构将成为所有没有显式架构的模型的默认架构或者您可以仅为某些模型指定一个架构,而其他模型将使用默认的
public
架构。当然,只有在您决定并指定了所有需要的模式(无论是在Sequelize示例中还是在某些模型中)之后才需要创建表,否则您将得到您在帖子中已经提到的错误。