如何使用 Python 检查 RethinkDB 中是否存在 table
How to check if table exists in RethinkDB with Python
我想在尝试创建 table 之前使用 python 客户端检查 table 是否已经存在于 RethinkDB 中。如果您尝试创建 table 并且它存在,则会引发错误。那么我该如何检查呢?我的代码如下所示:
from rethinkdb import RethinkDB
from faker import Faker
from faker_music import MusicProvider
from random import random
from time import sleep
fake = Faker()
fake.add_provider(MusicProvider)
r = RethinkDB()
r.connect( "localhost", 28015).repl()
r.db("test").table_create("instruments").run()
def instrument()->dict:
instrument = {"name":fake.music_instrument(),"category":fake.music_instrument_category()}
return instrument
initial = [instrument() for _ in range(3)]
r.table("instruments").insert(initial).run()
while True:
check = random()
if check < 0.5 and check >0.25:
r.table("instruments").insert(instrument()).run()
if check < 0.25:
cursor = r.table("instruments").filter( r.row["category"].count() > 2 ).delete().run()
sleep(1)
这个有效:
try:
r.db("test").table_drop("instruments").run()
except:
pass
r.db("test").table_create("instruments").run()
我在任何地方都找不到建议的方法。他们也许应该添加这样的方法。
我想在尝试创建 table 之前使用 python 客户端检查 table 是否已经存在于 RethinkDB 中。如果您尝试创建 table 并且它存在,则会引发错误。那么我该如何检查呢?我的代码如下所示:
from rethinkdb import RethinkDB
from faker import Faker
from faker_music import MusicProvider
from random import random
from time import sleep
fake = Faker()
fake.add_provider(MusicProvider)
r = RethinkDB()
r.connect( "localhost", 28015).repl()
r.db("test").table_create("instruments").run()
def instrument()->dict:
instrument = {"name":fake.music_instrument(),"category":fake.music_instrument_category()}
return instrument
initial = [instrument() for _ in range(3)]
r.table("instruments").insert(initial).run()
while True:
check = random()
if check < 0.5 and check >0.25:
r.table("instruments").insert(instrument()).run()
if check < 0.25:
cursor = r.table("instruments").filter( r.row["category"].count() > 2 ).delete().run()
sleep(1)
这个有效:
try:
r.db("test").table_drop("instruments").run()
except:
pass
r.db("test").table_create("instruments").run()
我在任何地方都找不到建议的方法。他们也许应该添加这样的方法。