INTEGRITY Документация

Neon

Neon представляет собой полностью управляемый serverless PostgreSQL. Он разделяет хранилище и вычисления, предоставляя современные возможности для разработчиков, такие как serverless-архитектура, ветвление и неограниченное хранилище.

Чтобы подключиться к Neon с помощью Hyperdrive, выполните следующие шаги:

1. Разрешите доступ к Hyperdrive

Hyperdrive можно подключить к любой существующей базе данных Neon, создав нового пользователя и получив строку подключения к базе данных.

Neon Dashboard

  1. Перейдите в панель управления Neon и выберите проект (базу данных), к которому нужно подключиться.
  2. Выберите Роли в боковой панели и выберите New Role. Введите hyperdrive-user в качестве имени (или укажите своё) и скопируйте пароль. Обратите внимание, что пароль больше не будет показан: если вы его не сохраните, придётся сбросить его заново.
  3. Выберите Dashboard в боковой панели > перейдите в Сведения о подключении панели убедитесь, что выбрано ветка, база данных и роль (например,hyperdrive-user) через который будет подключаться Hyperdrive.
  4. Выберите psql и снимите флажок connection pooling флажок. Запишите строку подключения (начинающуюся с postgres://hyperdrive-user@...) из текстового поля.

Имея строку подключения и пароль, теперь можно создать конфигурацию базы данных Hyperdrive.

2. Создание конфигурации базы данных

Чтобы настроить Hyperdrive, вам потребуется:

  • IP-адрес (или имя хоста) и порт вашей базы данных.
  • Имя пользователя базы данных (например, hyperdrive-demo) которую вы настроили на предыдущем шаге.
  • Пароль, связанный с этим именем пользователя.
  • Имя базы данных, к которой должен подключиться Hyperdrive. Например, postgres.

Hyperdrive принимает комбинацию этих параметров в стандартном формате строки подключения, который используется драйверами баз данных:

postgres://USERNAME:PASSWORD@HOSTNAME_OR_IP_ADDRESS:PORT/database_name

Большинство провайдеров баз данных предоставляют строку подключения, которую можно напрямую скопировать и вставить прямо в Hyperdrive.

Чтобы создать конфигурацию Hyperdrive в панели управления Cloudflare:

  1. На панели управления Cloudflare перейдите к разделу Hyperdrive страницу.

    Перейдите в Hyperdrive ↗
  2. Выберите Создать конфигурацию.

  3. Заполните форму, включая строку подключения.

  4. Выберите Создание.

Чтобы создать конфигурацию Hyperdrive с помощью Wrangler CLI:

  1. Откройте терминал и выполните следующую команду. Замените <NAME_OF_HYPERDRIVE_CONFIG> с именем для вашей конфигурации Hyperdrive и вставьте строку подключения, предоставленную хостом базы данных, либо замените user, password, HOSTNAME_OR_IP_ADDRESS, port, а также database_name заполнители значениями, соответствующими вашей базе данных:

    npx wrangler hyperdrive create <NAME_OF_HYPERDRIVE_CONFIG> --connection-string="postgres://user:password@HOSTNAME_OR_IP_ADDRESS:PORT/database_name"
  2. Эта команда выводит привязку для конфигурационный файл Wrangler:

    {
    	"$schema": "./node_modules/wrangler/config-schema.json",
    	"name": "hyperdrive-example",
    	"main": "src/index.ts",
    	// Set this to today's date
    	"compatibility_date": "2026-08-28",
    	"compatibility_flags": [
    		"nodejs_compat"
    	],
    	// Pasted from the output of `wrangler hyperdrive create <NAME_OF_HYPERDRIVE_CONFIG> --connection-string=[...]` above.
    	"hyperdrive": [
    		{
    			"binding": "HYPERDRIVE",
    			"id": "<ID OF THE CREATED HYPERDRIVE CONFIGURATION>"
    		}
    	]
    }
    "$schema" = "./node_modules/wrangler/config-schema.json"
    name = "hyperdrive-example"
    main = "src/index.ts"
    # Set this to today's date
    compatibility_date = "2026-08-28"
    compatibility_flags = [ "nodejs_compat" ]
    
    [[hyperdrive]]
    binding = "HYPERDRIVE"
    id = "<ID OF THE CREATED HYPERDRIVE CONFIGURATION>"

3. Использование Hyperdrive в вашем Worker

Установите node-postgres драйвер:

npm i pg@>8.16.3

При использовании TypeScript установите пакет типов:

npm i -D @types/pg

Добавьте необходимые флаги совместимости Node.js и привязку Hyperdrive в свой wrangler.jsonc файле:

{
	// required for database drivers to function
	"compatibility_flags": [
		"nodejs_compat"
	],
	// Set this to today's date
	"compatibility_date": "2026-08-28",
	"hyperdrive": [
		{
			"binding": "HYPERDRIVE",
			"id": "<your-hyperdrive-id-here>"
		}
	]
}
compatibility_flags = [ "nodejs_compat" ]
# Set this to today's date
compatibility_date = "2026-08-28"

[[hyperdrive]]
binding = "HYPERDRIVE"
id = "<your-hyperdrive-id-here>"

Создайте новый Client экземпляр и передайте Hyperdrive connectionString:

// filepath: src/index.ts
import { Client } from "pg";

export default {
	async fetch(
		request: Request,
		env: Env,
		ctx: ExecutionContext,
	): Promise<Response> {
		// Create a new client instance for each request. Hyperdrive maintains the
		// underlying database connection pool, so creating a new client is fast.
		const client = new Client({
			connectionString: env.HYPERDRIVE.connectionString,
		});

		try {
			// Connect to the database
			await client.connect();

			// Perform a simple query
			const result = await client.query("SELECT * FROM pg_tables");

			return Response.json({
				success: true,
				result: result.rows,
			});
		} catch (error: any) {
			console.error("Database error:", error.message);

			return new Response("Internal error occurred", { status: 500 });
		}
	},
};

Следующие шаги

Чтобы подключиться к Neon с помощью @neondatabase/serverless, выполните следующие шаги:

  1. Для подключения понадобится уже существующая база данных Neon. Создайте базу данных Neon или загрузить данные из существующей базы данных в Neon.

  2. Создайте elements table using the Neon SQL editor. The SQL Editor allows you to query your databases directly from the Neon Console.

    CREATE TABLE elements (
      id INTEGER NOT NULL,
      elementName TEXT NOT NULL,
      atomicNumber INTEGER NOT NULL,
      symbol TEXT NOT NULL
    );
  3. Добавьте немного данных в только что созданную таблицу.

    INSERT INTO elements (id, elementName, atomicNumber, symbol)
    VALUES
      (1, 'Hydrogen', 1, 'H'),
      (2, 'Helium', 2, 'He'),
      (3, 'Lithium', 3, 'Li'),
      (4, 'Beryllium', 4, 'Be'),
      (5, 'Boron', 5, 'B'),
      (6, 'Carbon', 6, 'C'),
      (7, 'Nitrogen', 7, 'N'),
      (8, 'Oxygen', 8, 'O'),
      (9, 'Fluorine', 9, 'F'),
      (10, 'Neon', 10, 'Ne');
  4. Настройте учётные данные базы данных Neon в вашем Worker:

    Добавьте строку подключения к базе данных Neon в качестве секрета вашего Worker. Получить строку подключения можно в Neon Console в разделе Сведения о подключении, затем добавьте его как секрет с помощью Wrangler:

    # Add the database connection string as a secret
    npx wrangler secret put DATABASE_URL
    # When prompted, paste your Neon database connection string
  5. В Worker установите @neondatabase/serverless драйвер для подключения к вашей базе данных и начала работы с данными:

    npm i @neondatabase/serverless
  6. Следующий пример показывает, как выполнить запрос к базе данных Neon из Worker. Учётные данные для подключения к Neon добавлены в Worker в качестве секретов.

    import { Client } from "@neondatabase/serverless";
    
    export default {
    	async fetch(request, env, ctx) {
    		const client = new Client(env.DATABASE_URL);
    		await client.connect();
    		const { rows } = await client.query("SELECT * FROM elements");
    
    		return new Response(JSON.stringify(rows));
    	},
    };

Подробнее о Neon см. в Официальная документация Neon.