Краткое руководство. Подключение и запрос данных в База данных Azure для PostgreSQL с одним сервером с помощью Ruby
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — отдельный сервер
Внимание
База данных Azure для PostgreSQL — одиночный сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для PostgreSQL — гибкий сервер. Дополнительные сведения о миграции на База данных Azure для PostgreSQL — гибкий сервер см. в статье "Что происходит с одним сервером База данных Azure для PostgreSQL?".
В этом кратком руководстве описывается, как подключиться к базе данных Azure для PostgreSQL с помощью приложения Ruby. Здесь также показано, как использовать инструкции SQL для запроса, вставки, обновления и удаления данных в базе данных. В этой статье предполагается, что у вас уже есть опыт разработки на Ruby и вы только начали работу с базой данных Azure для PostgreSQL.
Необходимые компоненты
В качестве отправной точки в этом кратком руководстве используются ресурсы, созданные в соответствии со следующими материалами:
Также необходимо установить:
Получение сведений о подключении
Получите сведения, необходимые для подключения к базе данных Azure.для PostgreSQL. Вам потребуется полное имя сервера и учетные данные для входа.
- Войдите на портал Azure.
- В меню слева на портале Azure выберите Все ресурсы и выполните поиск по имени созданного сервера (например, mydemoserver).
- Выберите имя сервера.
- Запишите имя сервера и имя для входа администратора сервера с панели сервера Обзор. Если вы забыли свой пароль, можно также сбросить пароль с помощью этой панели.
Примечание.
Символ @
в имени пользователя Azure Postgres URL был закодирован как %40
во всех строках соединения.
Подключение и создание таблицы
Используйте приведенный ниже код для подключения и создайте таблицу с помощью инструкции SQL CREATE TABLE. Добавьте строки в таблицу, применив инструкцию SQL INSERT INTO.
В коде используется объект PG::Connection
с конструктором new
для подключения к Базе данных Azure для PostgreSQL. Затем вызывает метод для выполнения команд exec()
DROP, CREATE TABLE и INSERT INTO. Код проверяет наличие ошибок с помощью PG::Error
класса. Затем вызывает метод close()
, чтобы закрыть соединение перед завершением. Дополнительные сведения о таких классах и методах см. в справочной документации по Ruby Pg.
Замените строки host
, database
, user
и password
собственными значениями.
require 'pg'
begin
# Initialize connection variables.
host = String('mydemoserver.postgres.database.azure.com')
database = String('postgres')
user = String('mylogin%40mydemoserver')
password = String('<server_admin_password>')
# Initialize connection object.
connection = PG::Connection.new(:host => host, :user => user, :dbname => database, :port => '5432', :password => password)
puts 'Successfully created connection to database'
# Drop previous table of same name if one exists
connection.exec('DROP TABLE IF EXISTS inventory;')
puts 'Finished dropping table (if existed).'
# Drop previous table of same name if one exists.
connection.exec('CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);')
puts 'Finished creating table.'
# Insert some data into table.
connection.exec("INSERT INTO inventory VALUES(1, 'banana', 150)")
connection.exec("INSERT INTO inventory VALUES(2, 'orange', 154)")
connection.exec("INSERT INTO inventory VALUES(3, 'apple', 100)")
puts 'Inserted 3 rows of data.'
rescue PG::Error => e
puts e.message
ensure
connection.close if connection
end
Чтение данных
Используйте указанный ниже код с инструкцией SQL SELECT для подключения и чтения данных.
В коде используется объект PG::Connection
с конструктором new
для подключения к Базе данных Azure для PostgreSQL. Затем он вызывает метод exec()
для выполнения команды SELECT, сохраняя результаты в результирующем наборе. Для коллекции набора результатов выполняется итерация с применением цикла resultSet.each do
. При этом данные строки текущего значения сохраняются в переменной row
. Код проверяет наличие ошибок с помощью PG::Error
класса. Затем вызывает метод close()
, чтобы закрыть соединение перед завершением. Дополнительные сведения о таких классах и методах см. в справочной документации по Ruby Pg.
Замените строки host
, database
, user
и password
собственными значениями.
require 'pg'
begin
# Initialize connection variables.
host = String('mydemoserver.postgres.database.azure.com')
database = String('postgres')
user = String('mylogin%40mydemoserver')
password = String('<server_admin_password>')
# Initialize connection object.
connection = PG::Connection.new(:host => host, :user => user, :dbname => database, :port => '5432', :password => password)
puts 'Successfully created connection to database.'
resultSet = connection.exec('SELECT * from inventory;')
resultSet.each do |row|
puts 'Data row = (%s, %s, %s)' % [row['id'], row['name'], row['quantity']]
end
rescue PG::Error => e
puts e.message
ensure
connection.close if connection
end
Обновление данных
Используйте указанный ниже код с инструкцией SQL UPDATE для подключения и обновления данных.
В коде используется объект PG::Connection
с конструктором new
для подключения к Базе данных Azure для PostgreSQL. Затем вызывает метод exec()
для выполнения команды UPDATE. Код проверяет наличие ошибок с помощью PG::Error
класса. Затем вызывает метод close()
, чтобы закрыть соединение перед завершением. Дополнительные сведения о таких классах и методах см. в справочной документации по Ruby Pg.
Замените строки host
, database
, user
и password
собственными значениями.
require 'pg'
begin
# Initialize connection variables.
host = String('mydemoserver.postgres.database.azure.com')
database = String('postgres')
user = String('mylogin%40mydemoserver')
password = String('<server_admin_password>')
# Initialize connection object.
connection = PG::Connection.new(:host => host, :user => user, :dbname => database, :port => '5432', :password => password)
puts 'Successfully created connection to database.'
# Modify some data in table.
connection.exec('UPDATE inventory SET quantity = %d WHERE name = %s;' % [200, '\'banana\''])
puts 'Updated 1 row of data.'
rescue PG::Error => e
puts e.message
ensure
connection.close if connection
end
Удаление данных
Используйте указанный ниже код с инструкцией SQL DELETE для подключения и чтения данных.
В коде используется объект PG::Connection
с конструктором new
для подключения к Базе данных Azure для PostgreSQL. Затем вызывает метод exec()
для выполнения команды UPDATE. Код проверяет наличие ошибок с помощью PG::Error
класса. Затем вызывает метод close()
, чтобы закрыть соединение перед завершением.
Замените строки host
, database
, user
и password
собственными значениями.
require 'pg'
begin
# Initialize connection variables.
host = String('mydemoserver.postgres.database.azure.com')
database = String('postgres')
user = String('mylogin%40mydemoserver')
password = String('<server_admin_password>')
# Initialize connection object.
connection = PG::Connection.new(:host => host, :user => user, :dbname => database, :port => '5432', :password => password)
puts 'Successfully created connection to database.'
# Modify some data in table.
connection.exec('DELETE FROM inventory WHERE name = %s;' % ['\'orange\''])
puts 'Deleted 1 row of data.'
rescue PG::Error => e
puts e.message
ensure
connection.close if connection
end
Очистка ресурсов
Чтобы очистить все ресурсы, используемые во время этого краткого руководства, удалите группу ресурсов с помощью следующей команды:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes