我有一个脚本,用于设置一个测试数据库(在Web应用程序中),该数据库使用从Postgres驱动程序而不是psql运行的COPY命令填充数据库。
我读到Postgres将以postgres用户身份运行该命令。
但是我收到了42501这样的错误:
import os
import time
import multiprocessing
# A dummy function representing some fixed functionality.
def do_something(x):
print('I got a thing:', x)
# A main function, run by our workers. (Remove role arg for working example)
def worker_main(queue, roles):
role = roles.get()
print('The worker at', os.getpid(), 'has role', role, ' and is initialized.')
# Use role in some way. (Comment out for working example)
do_something(role)
while True:
# Block until something is in the queue.
item = queue.get(True)
print(item)
time.sleep(0.5)
if __name__ == '__main__':
# Define some roles for our workers.
roles = [1, 2, 3]
# Instantiate a Queue for communication.
the_queue = multiprocessing.Queue()
roles_queue = multiprocessing.Queue()
for role in roles:
roles_queue.put(role)
# Build a Pool of workers, each running worker_main.
# PROBLEM: Next line breaks - how do I pass one element of roles to each worker?
the_pool = multiprocessing.Pool(3, worker_main, (the_queue, roles_queue))
# Iterate, sending data via the Queue.
[the_queue.put('Insert useful message here') for _ in range(5)]
worker_pool.close()
worker_pool.join()
time.sleep(10)
所以我尝试将postgres添加到拥有所有文件夹的组中,直到该csv(root除外)。以下是权限和组:
adb shell su 0 setenforce 0
但我仍然得到同样的错误。我认为通过向用户组添加postgres,它将能够读取如上所示的文件。我是否需要将其添加到根组?或者让用户拥有/ folder?