MarcoPolo - create_db()

This function creates a database on the connected OrientDB Server.

Creating Databases

While it is possible to connect your Elixir application to an existing database on the OrientDB Server, it is more likely that you'll want to create databases dynamically from within your application. The create_db() takes the connection interface, database name and database options, then creates a database on the Server. In the event that there is a problem it returns an error message.

Syntax

create_db(<conn>, <name>, <database-type>, <storage type>, <opts>)
  • <conn> Provides the server connection.
  • <name> Defines the database name.
  • <database-type> Defines the database-type. Supported types are,
    • :document Creates a Document database.
    • :graph Creates a Graph database.
  • <storage type> Defines the storage-type. Supported types are,
    • :plocal Sets to the PLocal storage-type.
    • :memory Sets to the in-memory storage-type.
  • <opts> Used for any additional keyword options passed to the function.

Options

This function supports one additional option:

  • :timeout Defines the timeout value in milliseconds. In the event that the operation takes longer than the allotted time, MarcoPolo sends an exit signal to the calling process.

Return Values

When the function is successful, it returns :ok. In the event that there is a problem, it returns {:error, term}, where term is the error message.

Example

For instance, you might want a function that integrates the create_db() function with the db_exists?() function. This would allow you to create a new database only in cases where one of the same name and type does not already exist.

@doc """ Check if Database Exists, Create it if it does not """
def create_db(conn, dbname, type) when type in [:plocal, :memory] do

	# Check Database Existence
	unless MarcoPolo.db_exists?(conn, dbname, type) do

		# Log Operation
		IO.puts("Creating Database: #{dbname}")
		
		# Create Database
		MarcoPolo.db_create(conn, dbname, :document, type)

	end
end