Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何判断DataMapper中是否存在表_Ruby_Datamapper - Fatal编程技术网

Ruby 如何判断DataMapper中是否存在表

Ruby 如何判断DataMapper中是否存在表,ruby,datamapper,Ruby,Datamapper,此代码在最后一行失败,具体原因是检查表_是否存在?如何在Datamapper中正确执行此操作 require 'sinatra' require 'DataMapper' DataMapper::setup(:default, "sqlite3://#{Dir.pwd}/blog.db") class Post include DataMapper::Resource property :id, Serial property :title, String

此代码在最后一行失败,具体原因是检查表_是否存在?如何在Datamapper中正确执行此操作


require 'sinatra'
require 'DataMapper'

DataMapper::setup(:default, "sqlite3://#{Dir.pwd}/blog.db")

class Post
    include DataMapper::Resource
    property :id, Serial
    property :title, String
    property :body, Text
    property :created_at, DateTime
end

DataMapper.finalize

# automatically create the post table
DataMapper.auto_migrate! unless Post.table_exists?

您可以使用
DataMapper.auto\u更新应该是非破坏性的(仅添加表/列)。

您可以使用
DataMapper.auto\u update应该是非破坏性的(仅添加表/列)。

Justin

如果您需要
dm迁移
(这基本上意味着您正在使用RDBMS适配器),您可以执行以下操作以确定是否存在表(或该表中的列)

请注意,如果需要进行
dm迁移
,并且您使用的是
DataObjectsAdapter
子代,则这些API方法只会混合到
适配器中。

Justin

如果您需要
dm迁移
(这基本上意味着您正在使用RDBMS适配器),您可以执行以下操作以确定是否存在表(或该表中的列)


请注意,如果需要
dm迁移
,并且您使用的是
DataObjectsAdapter
子代,则这些API方法只会混合到
适配器中。

是的,谢谢,这就是我为解决此问题所做的工作,然而,我真的很想了解foo到底发生了什么事。table_存在?是的,谢谢你,这就是我一直在做的事情来解决这个问题,但是我真的很想了解foo到底发生了什么事。table_存在吗?
# Find out if the table named 'people' exists
DataMapper.repository(:default).adapter.storage_exists?('people')

# Find out if there's a 'name' column in the 'people' table
DataMapper.repository(:default).adapter.field_exists?('people', 'name')