Download the PHP package oniichann/cheap-sql-scheme without Composer

On this page you can find all versions of the php package oniichann/cheap-sql-scheme. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package cheap-sql-scheme

Cheap SQL Scheme

Визуальный редактор схем базы данных для Laravel. Ставится одной командой и открывается в браузере.

Установка

Готово: откройте /sql-schemes.

Node.js не нужен: интерфейс уже собран и лежит в dist/, Laravel отдаёт его сам.

Требования

Кто может открыть редактор

По умолчанию — все. Закрыть его решает ваше приложение, например в AppServiceProvider::boot():

Можно и через middleware в конфиге: 'middleware' => ['web', 'auth'].

Все, кого пустили, работают в общем пространстве и видят все схемы. Если залогиненный пользователь должен видеть только свои, включите 'per_user' => true. Автор схемы запоминается в sql_schemas.user_id, если при создании кто-то был залогинен.

Настройка

config/cheap-sql-scheme.php:

Ключ По умолчанию Что делает
path sql-schemes Адрес редактора; API живёт под /{path}/api
locale en Язык интерфейса: en или ru
middleware ['web'] Middleware интерфейса и API; например, ['web', 'auth']
per_user false true — залогиненный видит только свои схемы
back_url / Куда ведёт «← Назад» со списка схем; null прячет кнопку
user_model null Модель автора для SqlSchema::user(); null берёт auth.providers.users.model
import_max_kb 5120 Максимальный размер импортируемого файла
save_migrations null Запись коммита в проект (Commit to project): null — только в local, true/false — везде вкл/выкл
migrations_path null Куда писать миграции; null — database/migrations
project_schema.enabled true Создавать схему базы проекта при первом открытии
project_schema.connection null Соединение для чтения структуры; null — по умолчанию
project_schema.exclude служебные Таблицы, которых нет в схеме проекта

Основное можно поменять и без публикации конфига, через .env:

Схема проекта и коммиты

При первом открытии редактор читает структуру базы приложения (таблицы, колонки, одноколоночные индексы, внешние ключи) и создаёт схему «{APP_NAME} database». Служебные таблицы Laravel и таблицы пакета в неё не попадают — список в project_schema.exclude. Кнопка Refresh from database обновляет схему из базы, сохраняя положение таблиц на холсте.

Дальше всё как в git:

  1. Меняешь схему на холсте. Новые колонки отмечаются зелёным, изменённые — жёлтым, в шапке растёт счётчик Migrations · N.
  2. Migrations открывает окно миграций на вкладке Changes: по каждой таблице видно, что добавлено, удалено, изменено (было → стало) и переименовано, а в Migration code — сами миграции.
  3. Commit to project записывает их в database/migrations, останется php artisan migrate. Следующий коммит покажет только то, что поменялось после этого.

Одна миграция — одна таблица, как принято в Laravel. Создал таблицу tags и добавил колонку phone в users — получишь два файла: create_tags_table и add_phone_to_users_table. Порядок файлов такой, чтобы php artisan migrate прошёл без ошибок:

У каждого файла свой down(), так что php artisan migrate:rollback откатывает коммит целиком.

Что попадает в миграции:

На холсте В миграции
новая таблица Schema::create(...)
переименовали таблицу Schema::rename(...)
удалили таблицу Schema::dropIfExists(...)
новая колонка $table->string('x')...
переименовали колонку $table->renameColumn(...) — данные сохраняются
поменяли тип, nullable, default ...->change()
удалили колонку $table->dropColumn(...)
unique / index unique() / dropUnique(), index() / dropIndex()
связь foreign(...) / dropForeign(...)

Таблицы и колонки опознаются по внутреннему id, а не по имени, поэтому переименование всегда остаётся переименованием, а не «удалить и создать заново». down() откатывает всё обратно.

Если база изменилась в обход редактора

Миграции не обязательно делать через редактор. Если их выполнили обычным php artisan migrate или поправили базу руками, редактор это заметит: при открытии схемы проекта и при возврате во вкладку он сверяет базу с последним коммитом. Если что-то разошлось, над холстом появляется плашка «The database changed outside the editor» со счётчиком изменений, кнопкой Details (что именно поменялось) и Refresh (подтянуть структуру из базы). Та же кнопка всегда есть в шапке: Refresh from database.

Сверка идёт «по смыслу». То, что база хранит по-своему (varchar(255) вместо string, datetime вместо timestamp в SQLite, 1 вместо true), изменением не считается. Пока в проекте есть невыполненные миграции, база законно отстаёт от схемы, и сверка не делается.

Окно коммита предупреждает:

Не поддерживаются: составные индексы и внешние ключи (их редактор не трогает), смена первичного ключа.

Схемы для других проектов

В редакторе можно рисовать и чужие базы — для другого проекта. У таких схем те же коммиты и миграции по изменениям, но их миграции никогда не пишутся в этот проект: иначе php artisan migrate создал бы здесь чужие таблицы. Вместо Commit to project у них Commit & download — файл (или ZIP, если файлов несколько) кладётся в database/migrations того проекта, для которого схема. Предупреждения о невыполненных миграциях и сверка с базой тоже есть только у схемы проекта.

Запись миграций в проект

Миграции попадают в проект только коммитом схемы его базы (Commit to project). Это защищает от повторного создания таблиц, которые уже есть, и от чужих таблиц.

Вкладка Full schema в том же окне отдаёт всю схему целиком: одной миграцией, по файлу на таблицу (ZIP) или .sql для MySQL, PostgreSQL и SQLite. Её только скачивают — для нового проекта или другой базы.

Другие публикации:

Таблицы

Пакет создаёт sql_schemas, sql_tables, sql_columns и sql_relations.

Разработка

Собранный dist/ коммитится вместе с кодом: его получают те, кто ставит пакет.

Лицензия

MIT


All versions of cheap-sql-scheme with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
ext-zip Version *
illuminate/support Version ^11.0|^12.0|^13.0
illuminate/database Version ^11.0|^12.0|^13.0
illuminate/http Version ^11.0|^12.0|^13.0
illuminate/routing Version ^11.0|^12.0|^13.0
phpmyadmin/sql-parser Version ^5.9|^6.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package oniichann/cheap-sql-scheme contains the following files

Loading the files please wait ...