diff --git a/Command/DatabaseCreateCommand.php b/Command/DatabaseCreateCommand.php
new file mode 100644
index 0000000..c088006
--- /dev/null
+++ b/Command/DatabaseCreateCommand.php
@@ -0,0 +1,76 @@
+setDescription('Create a given database or the default one.')
+ ->addOption('connection', null, InputOption::VALUE_OPTIONAL, 'Set this parameter to define a connection to use')
+ ->setName('propel:database:create');
+ }
+
+ /**
+ * @see Command
+ *
+ * @throws \InvalidArgumentException When the target directory does not exist
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ list($name, $config) = $this->getConnection($input, $output);
+ $dbName = $this->parseDbName($config['connection']['dsn']);
+ $query = 'CREATE DATABASE '. $dbName .';';
+
+ try {
+ \Propel::setConfiguration($this->getTemporaryConfiguration($name, $config));
+ $connection = \Propel::getConnection();
+
+ $statement = $connection->prepare($query);
+ $statement->execute();
+ $output->writeln(sprintf('%s has been created.', $dbName));
+ } catch (Exception $e) {
+ $output->writeln(sprintf('An error has occured: %s', $e->getMessage()));
+ }
+ }
+
+ /**
+ * Create a temporary configuration to connect to the database in order
+ * to create a given database. This idea comes from Doctrine1.
+ *
+ * @see https://github.com/doctrine/doctrine1/blob/master/lib/Doctrine/Connection.php#L1491
+ *
+ * @param string $name A connection name.
+ * @param array $config A Propel connection configuration.
+ * @return array
+ */
+ private function getTemporaryConfiguration($name, $config)
+ {
+ $dbName = $this->parseDbName($config['connection']['dsn']);
+
+ $config['connection']['dsn'] = preg_replace(
+ '#dbname='.$dbName.'#',
+ 'dbname='.strtolower($config['adapter']),
+ $config['connection']['dsn']
+ );
+
+ return array(
+ 'datasources' => array($name => $config)
+ );
+ }
+}