o2m

package
v1.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 5, 2022 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Copyright © 2020 Marvin

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ChangeTableColumnDefaultValue

func ChangeTableColumnDefaultValue(ctx context.Context, oracle *oracle.Oracle, dataDefault string) (string, error)

func ChangeTableColumnType

func ChangeTableColumnType(ctx context.Context, oracle *oracle.Oracle, sourceSchema, sourceTableName, columnName string, columnINFO Column) (string, error)

数据库查询获取自定义表结构转换规则 加载数据类型转换规则【处理字段级别、表级别、库级别数据类型映射规则】 数据类型转换规则判断,未设置自定义规则,默认采用内置默认字段类型转换

func GenOracleTableColumnMeta

func GenOracleTableColumnMeta(ctx context.Context, oracle *oracle.Oracle, sourceSchema, sourceTableName, columnName string, columnINFO Column) (string, error)

Oracle 表字段映射转换 -> Check 阶段

func GetOracleConstraint

func GetOracleConstraint(schemaName, tableName string, oracle *oracle.Oracle) ([]ConstraintPUKey, []ConstraintForeign, []ConstraintCheck, error)

func GetOracleTableColumn

func GetOracleTableColumn(schemaName, tableName string, oracle *oracle.Oracle, sourceDBCharacterSet, nlsComp string,
	sourceTableCollation string, sourceSchemaCollation string, oraCollation bool) (map[string]Column, string, error)

func OracleTableColumnMapRuleCheck

func OracleTableColumnMapRuleCheck(
	ctx context.Context,
	oracle *oracle.Oracle,
	sourceSchema, targetSchema, tableName, columnName string,
	oracleColInfo, mysqlColInfo Column) (string, table.Row, error)

Types

type Check

type Check struct {
	Ctx             context.Context
	OracleTableINFO *Table         `json:"oracle_table_info"`
	MySQLTableINFO  *Table         `json:"mysql_table_info"`
	MySQLDBVersion  string         `json:"mysqldb_version"`
	MySQLDBType     string         `json:"mysqldb_type"`
	Oracle          *oracle.Oracle `json:"-"`
}

func NewChecker

func NewChecker(ctx context.Context, oracleTableInfo, mysqlTableInfo *Table, mysqlDBVersion, targetDBType string, oracle *oracle.Oracle) *Check

func (*Check) CheckCheckKey

func (c *Check) CheckCheckKey() (string, error)

func (*Check) CheckColumn

func (c *Check) CheckColumn() (string, error)

func (*Check) CheckColumnCharacterSetAndCollation

func (c *Check) CheckColumnCharacterSetAndCollation() string

func (*Check) CheckColumnCounts

func (c *Check) CheckColumnCounts() (string, error)

func (*Check) CheckForeignKey

func (c *Check) CheckForeignKey() (string, error)

func (*Check) CheckIndex

func (c *Check) CheckIndex() (string, error)

func (*Check) CheckPartitionTable

func (c *Check) CheckPartitionTable() (string, error)

func (*Check) CheckPartitionTableType

func (c *Check) CheckPartitionTableType() string

func (*Check) CheckPrimaryAndUniqueKey

func (c *Check) CheckPrimaryAndUniqueKey() (string, error)

func (*Check) CheckTableCharacterSetAndCollation

func (c *Check) CheckTableCharacterSetAndCollation() string

func (*Check) CheckTableComment

func (c *Check) CheckTableComment() string

func (*Check) String

func (c *Check) String() string

func (*Check) Writer

func (c *Check) Writer(f *check.File) error

type Column

type Column struct {
	DataType                string
	CharLength              string
	CharUsed                string
	CharacterSet            string
	Collation               string
	OracleOriginDataDefault string
	MySQLOriginDataDefault  string
	ColumnInfo
}

func (*Column) String

func (c *Column) String() string

type ColumnInfo

type ColumnInfo struct {
	DataLength        string
	DataPrecision     string
	DataScale         string
	DatetimePrecision string
	NULLABLE          string
	DataDefault       string
	Comment           string
}

type ConstraintCheck

type ConstraintCheck struct {
	ConstraintExpression string
}

type ConstraintForeign

type ConstraintForeign struct {
	ColumnName            string
	ReferencedTableSchema string
	ReferencedTableName   string
	ReferencedColumnName  string
	DeleteRule            string
	UpdateRule            string
}

type ConstraintPUKey

type ConstraintPUKey struct {
	ConstraintType   string
	ConstraintColumn string
}

type Index

type Index struct {
	IndexInfo
	IndexName        string
	IndexType        string
	DomainIndexOwner string
	DomainIndexName  string
	DomainParameters string
}

func GetOracleTableIndex

func GetOracleTableIndex(schemaName, tableName string, oracle *oracle.Oracle) ([]Index, error)

type IndexInfo

type IndexInfo struct {
	Uniqueness  string
	IndexColumn string
}

type O2M

type O2M struct {
	// contains filtered or unexported fields
}

func NewO2MCheck

func NewO2MCheck(ctx context.Context, cfg *config.Config, oracle *oracle.Oracle, mysql *mysql.MySQL) *O2M

func (*O2M) NewCheck

func (r *O2M) NewCheck() error

type Partition

type Partition struct {
	PartitionKey     string
	PartitionType    string
	SubPartitionKey  string
	SubPartitionType string
}

type Table

type Table struct {
	SchemaName         string
	TableName          string
	TableComment       string
	TableCharacterSet  string
	TableCollation     string
	Columns            map[string]Column // KEY 字段名
	Indexes            []Index
	PUConstraints      []ConstraintPUKey
	ForeignConstraints []ConstraintForeign
	CheckConstraints   []ConstraintCheck
	IsPartition        bool
	Partitions         []Partition // 获取分区键、分区类型以及子分区键、子分区类型
}

func NewMySQLTableINFO

func NewMySQLTableINFO(schemaName, tableName, targetDBType string, mysql *mysql.MySQL) (*Table, string, error)

func NewOracleTableINFO

func NewOracleTableINFO(schemaName, tableName string, oracle *oracle.Oracle, sourceCharacterSet, nlsComp string,
	sourceTableCollation, sourceSchemaCollation string, oracleCollation bool) (*Table, error)

func (*Table) String

func (t *Table) String(jsonType string) string

type Task

type Task struct {
	SourceSchemaName      string `json:"source_schema_name"`
	TargetSchemaName      string `json:"target_schema_name"`
	TableName             string `json:"table_name"`
	TargetDBType          string `json:"target_db_type"`
	SourceDBCharacterSet  string `json:"source_db_character_set"`
	SourceDBNLSSort       string `json:"source_dbnls_sort"`
	SourceDBNLSComp       string `json:"source_dbnls_comp"`
	SourceDBCollation     bool   `json:"source_db_collation"`
	SourceTableCollation  string `json:"source_table_collation"`
	SourceSchemaCollation string `json:"source_schema_collation"`

	Oracle *oracle.Oracle
	MySQL  *mysql.MySQL
}

func GenCheckTaskTable

func GenCheckTaskTable(sourceSchemaName, targetSchemaName, sourceDBCharacterSet, nlsSort, nlsComp string,
	sourceTableCollation map[string]string, sourceSchemaCollation string,
	sourceDBCollation bool, targetDBType string, oracle *oracle.Oracle, mysql *mysql.MySQL, exporters []string) []*Task

func (*Task) GenMySQLTable

func (t *Task) GenMySQLTable() (*Table, string, error)

func (*Task) GenOracleTable

func (t *Task) GenOracleTable() (*Table, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL