36 lines
1.3 KiB
Markdown
36 lines
1.3 KiB
Markdown
# Schema API (RU)
|
||
|
||
Помощники для создания и обновления таблиц.
|
||
|
||
## Пример: create table
|
||
|
||
```java
|
||
import com.andrewkydev.database.schema.ColumnSpec;
|
||
import com.andrewkydev.database.schema.IndexSpec;
|
||
import com.andrewkydev.database.schema.TableSpec;
|
||
|
||
TableSpec table = TableSpec.builder("players")
|
||
.column(ColumnSpec.builder("id", "BIGINT").primaryKey(true).autoIncrement(true).nullable(false).build())
|
||
.column(ColumnSpec.builder("name", "VARCHAR(32)").nullable(false).build())
|
||
.index(new IndexSpec("players_name_idx", java.util.Arrays.asList("name"), false))
|
||
.build();
|
||
|
||
api.schema().createTable(table);
|
||
```
|
||
|
||
## Методы
|
||
|
||
```java
|
||
api.schema().createDatabase("primalix");
|
||
api.schema().dropDatabase("primalix");
|
||
api.schema().createTable(spec);
|
||
api.schema().dropTable("players");
|
||
api.schema().addColumn("players", ColumnSpec.builder("level", "INT").build());
|
||
api.schema().updateColumn("players", ColumnSpec.builder("level", "INT").nullable(false).build());
|
||
api.schema().dropColumn("players", "level");
|
||
api.schema().addIndex("players", new IndexSpec("players_name_idx", java.util.Arrays.asList("name"), false));
|
||
api.schema().dropIndex("players", "players_name_idx");
|
||
```
|
||
|
||
У всех методов есть async версии с `CompletableFuture`.
|