| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- <?php
- namespace Illuminate\Database\Schema;
- use Illuminate\Database\QueryException;
- use Illuminate\Support\Facades\File;
- class SQLiteBuilder extends Builder
- {
- /**
- * Create a database in the schema.
- *
- * @param string $name
- * @return bool
- */
- public function createDatabase($name)
- {
- return File::put($name, '') !== false;
- }
- /**
- * Drop a database from the schema if the database exists.
- *
- * @param string $name
- * @return bool
- */
- public function dropDatabaseIfExists($name)
- {
- return File::exists($name)
- ? File::delete($name)
- : true;
- }
- /**
- * Get the tables for the database.
- *
- * @param bool $withSize
- * @return array
- */
- public function getTables($withSize = true)
- {
- if ($withSize) {
- try {
- $withSize = $this->connection->scalar($this->grammar->compileDbstatExists());
- } catch (QueryException $e) {
- $withSize = false;
- }
- }
- return $this->connection->getPostProcessor()->processTables(
- $this->connection->selectFromWriteConnection($this->grammar->compileTables($withSize))
- );
- }
- /**
- * Get the columns for a given table.
- *
- * @param string $table
- * @return array
- */
- public function getColumns($table)
- {
- $table = $this->connection->getTablePrefix().$table;
- return $this->connection->getPostProcessor()->processColumns(
- $this->connection->selectFromWriteConnection($this->grammar->compileColumns($table)),
- $this->connection->scalar($this->grammar->compileSqlCreateStatement($table))
- );
- }
- /**
- * Drop all tables from the database.
- *
- * @return void
- */
- public function dropAllTables()
- {
- if ($this->connection->getDatabaseName() !== ':memory:') {
- return $this->refreshDatabaseFile();
- }
- $this->connection->select($this->grammar->compileEnableWriteableSchema());
- $this->connection->select($this->grammar->compileDropAllTables());
- $this->connection->select($this->grammar->compileDisableWriteableSchema());
- $this->connection->select($this->grammar->compileRebuild());
- }
- /**
- * Drop all views from the database.
- *
- * @return void
- */
- public function dropAllViews()
- {
- $this->connection->select($this->grammar->compileEnableWriteableSchema());
- $this->connection->select($this->grammar->compileDropAllViews());
- $this->connection->select($this->grammar->compileDisableWriteableSchema());
- $this->connection->select($this->grammar->compileRebuild());
- }
- /**
- * Empty the database file.
- *
- * @return void
- */
- public function refreshDatabaseFile()
- {
- file_put_contents($this->connection->getDatabaseName(), '');
- }
- }
|