UNPKG

web3.db-fileconnector

Version:

GraphQL System Built on web3 technologies. Web3.DB is an open database built on top of web3 technologies. It is a decentralized, open-source database that allows users to store and query data in a secure and efficient manner. The system is designed to be

126 lines (89 loc) 3.79 kB
# Comprehensive Solution for PostgreSQL and Ceramic Connection Issues Based on our investigation, I've identified two separate issues that need to be addressed: ## Issue 1: PostgreSQL Permission Error The error "permission denied for schema public" indicates that your 'admin' user doesn't have sufficient permissions to create tables in the public schema of the 'ceramic' database. ### Solution for PostgreSQL Issue: 1. **Grant the necessary permissions to the 'admin' user**: ```sql -- Connect to PostgreSQL as superuser (usually 'postgres') psql -U postgres -- Connect to the ceramic database \c ceramic -- Grant usage on schema GRANT USAGE ON SCHEMA public TO admin; -- Grant create on schema GRANT CREATE ON SCHEMA public TO admin; -- Grant all privileges on all tables GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO admin; -- Make privileges apply to future tables ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO admin; -- Make admin the owner of the database (optional but recommended) ALTER DATABASE ceramic OWNER TO admin; ``` ## Issue 2: Ceramic Node Connection Error The application is trying to connect to `https://localhost:7007/` but your Ceramic node is configured to run on `http://127.0.0.1:7007` (note the protocol and hostname differences). ### Solution for Ceramic Connection Issue: 1. **Update the Ceramic node URL in orbisdb-settings.json**: Change this line in orbisdb-settings.json: ```json "node": "https://localhost:7007/" ``` To: ```json "node": "http://127.0.0.1:7007/" ``` This change addresses two issues: - Changes from HTTPS to HTTP (your Ceramic node is using HTTP) - Changes from localhost to 127.0.0.1 (for consistency with your Ceramic configuration) ## Implementation Steps: 1. **Fix PostgreSQL permissions** using the SQL commands above 2. **Update the Ceramic node URL** in orbisdb-settings.json: ```json { "configuration": { "admins": [ "did:pkh:eip155:1:0xab16eb371d25001f19da5da238d5e3c01bb198da" ], "ceramic": { "node": "http://127.0.0.1:7007/", "seed": "[142,127,169,4,157,165,54,187,122,132,30,238,26,221,181,145,0,196,178,34,159,28,144,137,139,210,3,54,208,212,124,151]" }, "db": { "user": "admin", "database": "ceramic", "password": "admin", "host": "127.0.0.1", "port": 5432 } }, "models_mapping": { "kh4q0ozorrgaq2mezktnrmdwleo1d": "models_indexed" } } ``` 3. **Ensure the Ceramic node is running**: - Check if the Ceramic daemon is running with: `ps aux | grep ceramic` - If not running, start it with: `cd server/ceramic-mcp && npx @ceramicnetwork/cli daemon` 4. **Restart your application**: ```bash NODE_ENV=production node index.js ``` ## Solution Diagram ```mermaid flowchart TD A[Start] --> B1[Fix PostgreSQL Permissions] A --> B2[Fix Ceramic Connection] B1 --> C1[Connect as PostgreSQL superuser] C1 --> D1[Grant schema permissions to admin user] D1 --> E1[Set default privileges] B2 --> C2[Update orbisdb-settings.json] C2 --> D2[Change https to http] D2 --> E2[Change localhost to 127.0.0.1] E1 --> F[Ensure Ceramic node is running] E2 --> F F --> G[Restart application] G --> H{Issues resolved?} H -->|Yes| I[Done] H -->|No| J[Additional troubleshooting] ``` By addressing both the PostgreSQL permissions and the Ceramic connection issues, your application should be able to create tables and connect to the Ceramic node successfully.