| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- export type Example = {
- installCommands?: string[]
- postInstallCommands?: string[]
- files?: {
- name: string
- content: string
- }[]
- }
- const examples = {
- nodejs: {
- installCommands: ['npm install postgres'],
- files: [
- {
- name: 'db.js',
- content: `import postgres from 'postgres'
- const connectionString = process.env.DATABASE_URL
- const sql = postgres(connectionString)
- export default sql`,
- },
- ],
- },
- golang: {
- installCommands: ['go get github.com/jackc/pgx/v5'],
- files: [
- {
- name: 'main.go',
- content: `package main
- import (
- "context"
- "log"
- "os"
- "github.com/jackc/pgx/v5"
- )
- func main() {
- conn, err := pgx.Connect(context.Background(), os.Getenv("DATABASE_URL"))
- if err != nil {
- log.Fatalf("Failed to connect to the database: %v", err)
- }
- defer conn.Close(context.Background())
- // Example query to test connection
- var version string
- if err := conn.QueryRow(context.Background(), "SELECT version()").Scan(&version); err != nil {
- log.Fatalf("Query failed: %v", err)
- }
- log.Println("Connected to:", version)
- }`,
- },
- ],
- },
- dotnet: {
- installCommands: [
- 'dotnet add package Microsoft.Extensions.Configuration.Json --version YOUR_DOTNET_VERSION',
- ],
- postInstallCommands: [
- 'dotnet add package Microsoft.Extensions.Configuration.Json --version YOUR_DOTNET_VERSION',
- ],
- },
- python: {
- installCommands: ['pip install python-dotenv psycopg2'],
- files: [
- {
- name: 'main.py',
- content: `import psycopg2
- from dotenv import load_dotenv
- import os
- # Load environment variables from .env
- load_dotenv()
- # Fetch variables
- USER = os.getenv("user")
- PASSWORD = os.getenv("password")
- HOST = os.getenv("host")
- PORT = os.getenv("port")
- DBNAME = os.getenv("dbname")
- # Connect to the database
- try:
- connection = psycopg2.connect(
- user=USER,
- password=PASSWORD,
- host=HOST,
- port=PORT,
- dbname=DBNAME
- )
- print("Connection successful!")
-
- # Create a cursor to execute SQL queries
- cursor = connection.cursor()
-
- # Example query
- cursor.execute("SELECT NOW();")
- result = cursor.fetchone()
- print("Current Time:", result)
- # Close the cursor and connection
- cursor.close()
- connection.close()
- print("Connection closed.")
- except Exception as e:
- print(f"Failed to connect: {e}")`,
- },
- ],
- },
- sqlalchemy: {
- installCommands: ['pip install python-dotenv sqlalchemy psycopg2'],
- files: [
- {
- name: 'main.py',
- content: `from sqlalchemy import create_engine
- # from sqlalchemy.pool import NullPool
- from dotenv import load_dotenv
- import os
- # Load environment variables from .env
- load_dotenv()
- # Fetch variables
- USER = os.getenv("user")
- PASSWORD = os.getenv("password")
- HOST = os.getenv("host")
- PORT = os.getenv("port")
- DBNAME = os.getenv("dbname")
- # Construct the SQLAlchemy connection string
- DATABASE_URL = f"postgresql+psycopg2://{USER}:{PASSWORD}@{HOST}:{PORT}/{DBNAME}?sslmode=require"
- # Create the SQLAlchemy engine
- engine = create_engine(DATABASE_URL)
- # If using Transaction Pooler or Session Pooler, we want to ensure we disable SQLAlchemy client side pooling -
- # https://docs.sqlalchemy.org/en/20/core/pooling.html#switching-pool-implementations
- # engine = create_engine(DATABASE_URL, poolclass=NullPool)
- # Test the connection
- try:
- with engine.connect() as connection:
- print("Connection successful!")
- except Exception as e:
- print(f"Failed to connect: {e}")`,
- },
- ],
- },
- }
- export default examples
|