我正在尝试使用龙卷风设置rethinkDB。这是我的数据库设置 -
db_connection = r.connect(RDB_HOST,RDB_PORT) #Connecting to RethinkDB server
This is just for cross-checking database and table exists
def dbSetup():
print PROJECT_DB,db_connection
try:
r.db_create(PROJECT_DB).run(db_connection)
print 'Database setup completed.'
except RqlRuntimeError:
try:
r.db(PROJECT_DB).table_create(PROJECT_TABLE).run(connection)
print 'Table creation completed'
except:
print 'Table already exists.Nothing to do'
print 'App database already exists.Nothing to do'
db_connection.close()
但是db_create的try块抛出了一个AttributeError:' Future'对象没有属性' _start'。我无法弄清楚这里似乎有什么问题。
答案 0 :(得分:0)
rethinkdb具有Tornado的本机异步客户端。您的问题是connect
只返回应该解析的未来(yield) - 是异步的。而该对象Future
没有像_start
这样的东西,也没有像重新思考连接对象那样的东西。示例如何操作:
import rethinkdb as r
from tornado import ioloop, gen
r.set_loop_type("tornado")
@gen.coroutine
def dbSetup():
db_connection = yield r.connect(RDB_HOST,RDB_PORT)
yield r.db_create(PROJECT_DB).run(db_connection)
print 'Database setup completed.'
tornado.ioloop.IOLoop.current().run_sync(dbSetup)
的更多信息